如何在MySQL 5.5中创建具有全文索引和分区的表?
我将MySQL版本从5.0更新到5.5。我是研究mysql分区的新手。首先,我输入: 显示变量,如“%partition%” 确保新版本支持分区。我试着每10分钟对我的表进行一次分区,然后插入、更新、查询大量数据到这个表中进行测试 首先,我需要创建一个新表,我键入我的代码:如何在MySQL 5.5中创建具有全文索引和分区的表?,mysql,partitioning,full-text-search,create-table,mysql-error-1214,Mysql,Partitioning,Full Text Search,Create Table,Mysql Error 1214,我将MySQL版本从5.0更新到5.5。我是研究mysql分区的新手。首先,我输入: 显示变量,如“%partition%” 确保新版本支持分区。我试着每10分钟对我的表进行一次分区,然后插入、更新、查询大量数据到这个表中进行测试 首先,我需要创建一个新表,我键入我的代码: CREATE TABLE test ( `id` int unsigned NOT NULL auto_increment, `words` varchar(100) collate utf8_unicode_ci N
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-不允许使用此分区函数,那么这是什么问题?谢谢
更新
将日期修改为int NOT NULL,并将按范围划分的分钟数据修改为按范围划分的列数据
然后导致新错误:1214-使用的表类型不支持全文索引
选择MINUTE'2008-10-10 56:56:98'返回null,原因是MINUTE函数从时间或日期时间值返回MINUTE,其中date是varchar,MINUTE函数以日期/日期时间表达式返回。同样,分区键必须是整数列或解析为
整数,但在您的情况下,它是VARCHAR很抱歉,mysql不能同时支持全文和分区 看
全文索引。分区表不支持全文索引或搜索。这包括使用MyISAM存储引擎的分区表。Rahul,那么您认为,插入代码的最佳方式是什么?我希望我的桌子每10分钟分区一次。再次感谢。Zohaib,我更新了我的代码,但这次导致1214-使用的表类型不支持全文索引。你知道吗?
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
);
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
);