MySQL FULLTEXT索引问题

时间:2009-06-08 05:36:48

标签: mysql sql mysql-error-1214

我正在尝试在表的属性上创建FULLTEXT索引。 Mysql返回

  

错误1214:使用的表类型不支持FULLTEXT索引。

知道我做错了什么吗?

5 个答案:

答案 0 :(得分:55)

您使用的是错误类型的表格。 Mysql支持几种不同类型的表,但最常用的是MyISAM和InnoDB。 MyISAM (in MySQL 5.6+also InnoDB tables) are the types of tables that Mysql supports for Full-text indexes.

要检查表的类型,请发出以下sql查询:

SHOW TABLE STATUS

查看查询返回的结果,在“引擎”列中查找表和相应的值。如果此值是除MyISAM或InnoDB之外的任何值,那么如果您尝试添加FULLTEXT索引,Mysql将抛出错误。

要更正此问题,您可以使用下面的sql查询来更改引擎类型:

ALTER TABLE <table name> ENGINE = [MYISAM | INNODB]

其他信息(认为可能有用): Mysql使用不同的引擎存储类型来优化特定表所需的功能。示例MyISAM是操作系统的默认类型(除了窗口),可以快速执行SELECT和INSERT;但不处理交易。 InnoDB是windows的默认设置,可用于交易。但是InnoDB确实需要更多的服务器磁盘空间。

答案 1 :(得分:10)

直到MySQL 5.6,MyISAM是唯一支持全文搜索(FTS)的存储引擎,但MySQL 5.6中的InnoDB FTS在语法上与MyISAM FTS完全相同。请阅读以下内容以了解更多详情。

InnoDB Full-text Search in MySQL 5.6

答案 2 :(得分:7)

mysql manual表示FULLTEXT索引只能在带有mylsam引擎的表上创建。

答案 3 :(得分:5)

您使用的是InnoDB吗?唯一支持FULLTEXT的表类型是MyISAM。

答案 4 :(得分:1)

除MyISAM表PARTITIONING外,还不支持full-text索引。