我将 MySQL 版本从 5.0 更新到 5.5。我是学习mysql分区
的新手。首先,我输入:
SHOW VARIABLES LIKE '%partition%'
Variable_name Value
have_partitioning YES
确保新版本支持分区
。我尝试每 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
);
它返回警报:#1564 - 不允许使用此分区函数
,那么这是什么问题呢?谢谢。
更新
将date
修改为int NOT NULL
,将PARTITION BY RANGE MINUTE(date)
修改为PARTITION 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 - 使用的表类型不支持 FULLTEXT 索引
最佳答案
非常抱歉,mysql 不支持同时支持全文和分区。
FULLTEXT 索引。分区表不支持 FULLTEXT 索引或搜索。这包括使用 MyISAM 存储引擎的分区表。
关于mysql - 如何在 MySQL 5.5 中创建具有全文索引和分区的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323671/