mytable如下所示:
CREATE TABLE `test1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`project_id` int(11) NOT NULL,
`md5` varchar(255) NOT NULL,
`create_time` datetime NOT NULL,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`,`project_id`,`md5`),
KEY `index_id` (`md5`),
) ;我想按md5进行分区。所以我创建了一个函数:
alter table test1 partition by HASH(FLOOR(`md5`)) PARTITIONS 5;但它失败了:
ERROR 1491 (HY000) The PARTITION function returns the wrong type非常感谢!
发布于 2019-03-04 07:26:25
FLOOR需要一个数值参数。如果MD5字符串为c51ce410c124a10e0db5e4b97fc2af39,则将其视为0。近一半的md5s将被视为零。
散列分区实际上是无用的。它肯定不会提供任何性能。
https://stackoverflow.com/questions/54777988
复制相似问题