错误1491(HY000):PARTITION函数返回错误的类型

问题描述 投票:0回答:1

像这样的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

非常感谢你!

mysql partitioning
1个回答
0
投票

FLOOR期待一个数字论证。如果MD5字符串是c51ce410c124a10e0db5e4b97fc2af39,则将其视为0.将近一半的md5s视为零。

HASH分区几乎没用。 IT肯定不会提供任何性能。

© www.soinside.com 2019 - 2024. All rights reserved.