我想通過datetime列對mysql表進行分區。有一天,一個partition.The創建表的腳本是這樣的:如何通過datetime列對錶進行分區?
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;
但是,當我選擇一些day.It無法找到partition.The select語句的數據是這樣的:
explain partitions select * from raw_log_2011_4 where day(ftime) = 30;
當我使用另一個語句時,它可以找到該分區,但我不會選擇某天的數據。
explain partitions select * from raw_log_2011_4 where ftime = '2011-03-30';
有沒有人告訴我如何選擇某天的數據並利用partition.Thanks!
'^ 1'如果表中的年數未知,「PARTITION BY HASH(YEAR(ftime))」是否會起作用? – 2017-01-25 10:18:51