mysql中partition的用法_MySQL中使用表分区(table的partition)

建表语句如下:

create table comment_partition(

id int not null auto_increment,

commenterIpv4 char(30),

blog int not null,

content text,

commentDate varchar(255),

primary key(id,blog))

partition by linear hash(blog)

partitions 10;

注意:用blog字段来分区,它必须是主键的一部分。

如下为插入一些数据:

INSERT INTO `comment_partition` VALUES (1,'127.0.0.1',2,'66666666666666666','2016-06-07 11-19'),(2,'127.0.0.1',2,'比较受用,谢谢博主。。。我也写了份c3p0的使用实例,在我的OSChina上,欢迎大家阅读并提出建议。。。。','2016-06-07 11-56'),(3,'127.0.0.1',2,'谢博主分享。。。','2016-06-07 12-00'),(4,'127.0.0.1',2,'多谢博主分享。。。。','2016-06-07 12-29'),(5,'127.0.0.1',3,'看了博主的分享后,终于解决了我的问题了。。。。','2016-06-07 12-30'),(6,'127.0.0.1',7,'6666666666666  3333333333333333333','2016-06-07 21-07'),(7,'127.0.0.1',7,'22223333333','2016-06-07 21-08'),(8,'127.0.0.1',7,'感谢博主分享。。。多谢了。。。','2016-06-07 21-08'),(9,'127.0.0.1',2,'233333332222222222222233333333333333','2016-06-07 21-33'),(10,'127.0.0.1',9,'6666666666666666','2016-06-07 21-35'),(11,'127.0.0.1',7,'多谢博主分享','2016-06-07 21-36'),(12,'127.0.0.1',8,'这种用apt-get install方式安装的话很多文件都找不到了。。。。','2016-06-07 21-36'),(13,'127.0.0.1',4,'看了看了','2016-06-08 19-38');

插入数据后mysql会根据不同的blog的值将记录放到不同的区中,如下为查看我们查询时mysql从哪个分区查询我们的数据(在mysql的命令窗口中输入如下命令):

explain partitions select id,blog from comment_partition where blog=6;

结果如下图(从p6分区中查询到):

13677071734ec647cdc2a1946fbd3125.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 分区是将分割成若干个子,每个子被称为一个分区,并且每个分区可以独立地存储在不同的磁盘上,从而提高查询效率和管理数据的灵活性。 `PARTITION BY RANGE (TO_DAYS(startTime))` 是按照 startTime 字段的天数进行分区。具体的操作步骤如下: 1. 首先需要创建一个分区,可以使用以下语句进行创建: ```sql CREATE TABLE table_name ( ... ) PARTITION BY RANGE (TO_DAYS(startTime)) ( PARTITION p0 VALUES LESS THAN (to_days('2019-01-01')), PARTITION p1 VALUES LESS THAN (to_days('2019-02-01')), PARTITION p2 VALUES LESS THAN (to_days('2019-03-01')), ... ); ``` 在上述语句,`table_name` 是你要创建的分区名,`startTime` 是你要按天数进行分区的字段名,`p0`、`p1`、`p2` 等是每个分区的名称,`to_days()` 函数是将日期转换为天数的 MySQL 内置函数。 2. 然后需要将数据插入到分区,可以使用以下语句进行插入: ```sql INSERT INTO table_name (...) VALUES (...); ``` 在上述语句,`table_name` 是你要插入数据的分区名,`...` 是你要插入的数据。 3. 最后需要查询数据,可以使用以下语句进行查询: ```sql SELECT ... FROM table_name WHERE startTime BETWEEN '2019-01-01' AND '2019-02-01'; ``` 在上述语句,`table_name` 是你要查询数据的分区名,`startTime` 是你要按天数进行分区的字段名,`BETWEEN` 是查询 startTime 在 '2019-01-01' 和 '2019-02-01' 之间的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值