我正在尝试在表的属性上创建FULLTEXT索引。 Mysql返回
错误1214:使用的表类型不支持FULLTEXT索引。
知道我做错了什么吗?
答案 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完全相同。请阅读以下内容以了解更多详情。
答案 2 :(得分:7)
mysql manual表示FULLTEXT
索引只能在带有mylsam引擎的表上创建。
答案 3 :(得分:5)
您使用的是InnoDB吗?唯一支持FULLTEXT的表类型是MyISAM。
答案 4 :(得分:1)
除MyISAM表PARTITIONING
外,还不支持full-text
索引。