小编tin*_*hen的帖子

如何按日期时间列对表进行分区?

我想通过datetime列对mysql表进行分区.有一天分区.创建表脚本是这样的:

CREATE TABLE raw_log_2011_4 (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  logid char(16) NOT NULL,
  tid char(16) NOT NULL,
  reporterip char(46) DEFAULT NULL,
  ftime datetime DEFAULT NULL,
  KEY id (id)
) ENGINE=InnoDB AUTO_INCREMENT=286802795 DEFAULT CHARSET=utf8
PARTITION BY hash (day(ftime)) partitions 31;
Run Code Online (Sandbox Code Playgroud)

但是当我选择某天的数据时,它找不到分区.select语句是这样的:

explain partitions select * from raw_log_2011_4 where day(ftime) = 30;
Run Code Online (Sandbox Code Playgroud)

当我使用另一个语句时,它可以找到分区,但我没有选择某天的数据.

explain partitions select * from raw_log_2011_4 where ftime = '2011-03-30';
Run Code Online (Sandbox Code Playgroud)

有没有人告诉我如何选择某天的数据并利用分区.谢谢!

mysql hash datetime database-partitioning

15
推荐指数
2
解决办法
4万
查看次数

标签 统计

database-partitioning ×1

datetime ×1

hash ×1

mysql ×1