0

我将 MySQL 版本从 5.0 更新到 5.5。我是新来学习的mysql partition。首先,我输入:

显示像“%partition%”这样的变量

Variable_name      Value
have_partitioning   YES

确保新版本支持partition. 我尝试每 10 分钟对我的表进行分区,然后将大量数据插入、更新、查询到该表中进行测试。

首先,我需要创建一个新表,输入我的代码:

CREATE TABLE test  ( 
`id` int unsigned NOT NULL auto_increment, 
`words` varchar(100) collate utf8_unicode_ci NOT NULL,  
`date` varchar(10) collate utf8_unicode_ci NOT NULL, 
PRIMARY KEY  (`id`),  
FULLTEXT KEY `index` (`words`)
) 
ENGINE=MyISAM  
DEFAULT CHARSET=utf8 
COLLATE=utf8_unicode_ci 
AUTO_INCREMENT=0  
PARTITION BY RANGE (MINUTE(`date`)) 
(
PARTITION p0 VALUES LESS THAN (1322644000),  
PARTITION p1 VALUES LESS THAN (1322644600) , 
PARTITION p2 VALUES LESS THAN (1322641200) ,  
PARTITION p3 VALUES LESS THAN (1322641800) ,  
PARTITION p4 VALUES LESS THAN MAXVALUE
);

它返回 alert: #1564 - This partition function is not allowed,那么这是什么问题?谢谢。

更新

修改dateintoint NOT NULLPARTITION BY RANGE MINUTE(date)intoPARTITION BY RANGE COLUMNS(date)

CREATE TABLE test  ( 
`id` int unsigned NOT NULL auto_increment, 
`words` varchar(100) collate utf8_unicode_ci NOT NULL,  
`date` int NOT NULL, 
PRIMARY KEY  (`id`),  
FULLTEXT KEY `index` (`words`)
) 
ENGINE=MyISAM  
DEFAULT CHARSET=utf8 
COLLATE=utf8_unicode_ci 
AUTO_INCREMENT=0  
PARTITION BY RANGE COLUMNS(`date`) 
(
PARTITION p0 VALUES LESS THAN (1322644000),  
PARTITION p1 VALUES LESS THAN (1322644600) , 
PARTITION p2 VALUES LESS THAN (1322641200) ,  
PARTITION p3 VALUES LESS THAN (1322641800) ,  
PARTITION p4 VALUES LESS THAN MAXVALUE
);

然后导致新的错误:#1214 - The used table type doesn't support FULLTEXT indexes

4

3 回答 3

1

非常抱歉,mysql 不支持全文和分区。

请参阅分区限制

FULLTEXT 索引。 分区表不支持 FULLTEXT 索引或搜索。这包括使用 MyISAM 存储引擎的分区表。

于 2011-11-30T12:29:52.133 回答
0

一个问题可能是

select MINUTE('2008-10-10 56:56:98')返回null,原因是Minute函数从时间或日期时间值返回分钟,在您的情况下,日期是varchar

于 2011-11-30T09:37:01.613 回答
0

MINUTE函数以日期/日期时间表达式返回。同样,分区键必须是整数列或解析为整数的表达式,但在您的情况下它是 VARCHAR

于 2011-11-30T09:42:37.123 回答