Подтвердить что ты не робот

Выдача индексов MySQL FULLTEXT

Я пытаюсь создать индекс FULLTEXT для атрибута таблицы. Mysql возвращает

ОШИБКА 1214: используемый тип таблицы не поддерживает индексы FULLTEXT.

Любая идея, что я делаю неправильно?

4b9b3361

Ответ 1

Вы используете неправильный тип таблицы. Mysql поддерживает несколько разных типов таблиц, но наиболее часто используются MyISAM и InnoDB. MyISAM (в MySQL 5.6 + также таблицы InnoDB) - это типы таблиц, которые Mysql поддерживает для полнотекстовых индексов.

Чтобы проверить тип таблицы, выполните следующий запрос sql:

SHOW TABLE STATUS

Посмотрев на результат, возвращаемый запросом, найдите стол и соответствующее значение в столбце Engine. Если это значение - это ничего, кроме MyISAM или InnoDB, тогда Mysql выдает ошибку, если вы пытаетесь добавить индексы FULLTEXT.

Чтобы исправить это, вы можете использовать SQL-запрос ниже, чтобы изменить тип двигателя:

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

Дополнительная информация (подумал, что это может быть полезно): Mysql использует разные типы хранилищ для оптимизации для необходимой функциональности конкретных таблиц. Пример MyISAM - это тип по умолчанию для операционных систем (помимо окон), быстро заготовки SELECT и INSERT; но не обрабатывает транзакции. InnoDB по умолчанию для окон, может использоваться для транзакций. Но InnoDB требует большего объема дискового пространства на сервере.

Ответ 2

До MySQL 5.6 MyISAM был единственным механизмом хранения с поддержкой полнотекстового поиска (FTS), но верно, что InnoDB FTS в MySQL 5.6 синтаксически идентичен MyISAM FTS. Пожалуйста, прочитайте ниже для более подробной информации.

Полнотекстовый поиск InnoDB в MySQL 5.6

Ответ 3

В руководстве mysql говорится, что индексы FULLTEXT могут создаваться только в таблицах с движком mylsam.

Ответ 4

Вы используете InnoDB? Единственным типом таблицы, который поддерживает FULLTEXT, является MyISAM.

Ответ 5

кроме таблицы MyISAM PARTITIONING также не поддерживается индекс full-text.