Я пытаюсь создать индекс FULLTEXT для атрибута таблицы. Mysql возвращает
ОШИБКА 1214: используемый тип таблицы не поддерживает индексы FULLTEXT.
Любая идея, что я делаю неправильно?
Я пытаюсь создать индекс FULLTEXT для атрибута таблицы. Mysql возвращает
ОШИБКА 1214: используемый тип таблицы не поддерживает индексы FULLTEXT.
Любая идея, что я делаю неправильно?
Вы используете неправильный тип таблицы. 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 требует большего объема дискового пространства на сервере.
До MySQL 5.6 MyISAM был единственным механизмом хранения с поддержкой полнотекстового поиска (FTS), но верно, что InnoDB FTS в MySQL 5.6 синтаксически идентичен MyISAM FTS. Пожалуйста, прочитайте ниже для более подробной информации.
В руководстве mysql говорится, что индексы FULLTEXT
могут создаваться только в таблицах с движком mylsam.
Вы используете InnoDB? Единственным типом таблицы, который поддерживает FULLTEXT, является MyISAM.
кроме таблицы MyISAM PARTITIONING
также не поддерживается индекс full-text
.