我遇到了在datetime列上使用partition by range对表进行分区的问题。
测试搜索结果仍处于完整分区扫描状态。
我在网上看到了一些有关此问题的帖子,但不确定是否有任何方法可以解决或绕过问题。
mysql服务器:Percona 5.5.24-55。
表:
id
bigint(20)unsigned NOT NULL,
time
datatime unsigned NOT NULL,
....
....
KEY id_time
(id
,time
)
发动机= InnoDB的
分区声明:
alter table summary_201204
按范围划分(日(time
))
按键分区(id
)
分区5(
分区p0值小于(6),
分区p1值小于(11),
分区p2值小于(16),
分区p3值小于(21),
分区p4值小于(26),
分区p5值小于(MAXVALUE));
检查:
解释分区select * from summary_201204 where time
< '2012-07-21';
结果:p0_p0sp0,p0_p0sp1,p0_p0sp2,p0_p0sp3,p0_p0sp4,p1_p1sp0,p1_p1sp1,p1_p1sp2,p1_p1sp3,p1_p1sp4,p2_p2sp0,p2_p2sp1,p2_p2sp2,p2_p2sp3,p2_p2sp4,p3_p3sp0,p3_p3sp1,p3_p3sp2,p3_p3sp3,p3_p3sp4,p4_p4sp0,p4_p4sp1,p4_p4sp2 ,p4_p4sp3,p4_p4sp4,p5_p5sp0,p5_p5sp1,p5_p5sp2,p5_p5sp3,p5_p5sp4。
答案 0 :(得分:0)
我认为答案是:访问enter link description here
因此,mysql官方网站中的文档对于分区所需的数据类型不够清楚。在这种情况下,如果表数据类型是datetime,那么我们应该使用to_seconds,而如果数据类型是DATE,那么我们可以使用YEA