繁体   English   中英

MySQL FULLTEXT索引问题

[英]MySQL FULLTEXT indexes issue

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

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

知道我做错了什么吗?

您使用的是错误类型的表格。 Mysql支持几种不同类型的表,但最常用的是MyISAM和InnoDB。 MyISAM(在MySQL 5.6 +也是InnoDB表中)是Mysql支持全文索引的表类型。

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

SHOW TABLE STATUS

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

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

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

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

直到MySQL 5.6,MyISAM是唯一支持全文搜索(FTS)的存储引擎,但是MySQL 5.6中的InnoDB FTS在语法上与MyISAM FTS完全相同。 请阅读下面的详细信息。

MySQL 5.6中的InnoDB全文搜索

mysql手册说只能在带有mylsam引擎的表上创建FULLTEXT索引。

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

除了MyISAM表, PARTITIONING也不支持full-text索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM