29

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

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

知道我做错了什么吗?

4

5 回答 5

55

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

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

SHOW TABLE STATUS

查看查询返回的结果,在 Engine 列中找到您的表和对应的值。如果这个值是 MyISAM 或 InnoDB 之外的任何值,那么如果您尝试添加 FULLTEXT 索引,Mysql 将抛出错误。

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

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

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

于 2009-06-08T05:43:25.513 回答
10

Up until MySQL 5.6, MyISAM was the only storage engine with support for full-text search (FTS) but it is true that InnoDB FTS in MySQL 5.6 is syntactically identical to MyISAM FTS. Please read below for more details.

InnoDB Full-text Search in MySQL 5.6

于 2013-03-06T13:33:08.190 回答
7

在 MySQL <= 5.5 上,mysql 手册FULLTEXT索引只能在使用 mylsam 引擎的表上创建。

于 2009-06-08T05:42:44.283 回答
5

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

于 2009-06-08T05:43:00.960 回答
2

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

于 2016-03-25T14:19:12.783 回答