Mysql, InnoDB в MyISAM для полнотекстового индекса

Собственно, я бы хотел переключить движок своих таблиц. Есть в InnoDB, и я хочу установить их в MyISAM из-за этого

ALTER TABLE `xxx_db`.`yyy` ADD FULLTEXT `ft_modele` (
    `anno_modele`
)

Ошибка: Документация № 1214 - Используемый тип таблицы не поддерживает индексы FULLTEXT.

Итак ... я делаю это:

ALTER TABLE `annonce` ENGINE = MYISAM 

Но у меня тоже ошибка:

#1217 - Cannot delete or update a parent row: a foreign key constraint fails 

Я понимаю ошибку ... но на самом деле я не хочу уничтожать индекс всех своих ссылок и создавать их заново. Слишком долго.

У кого-то есть идея преобразовать innoDB в MyISAM? Я читал, что полнотекстовый режим поддерживается для MySQL 5.6.4 ... к сожалению, у меня 5.5.28 и я использую Plesk 11. Боюсь, что если я сделаю обновление, мой сервер выйдет из строя.

Кто-нибудь может мне помочь?


person Raphaël    schedule 11.02.2013    source источник


Ответы (3)


Полнотекстовые индексы или ограничения внешнего ключа (MyISAM не поддерживает их), вы можете выбрать только один (до MySQL 5.6).

Изменение движка базы данных в любом случае приведет к полной перезаписи таблицы (создание новой, перемещение данных, удаление старой).

На вашем месте я бы пошел на апгрейд.

person Mchl    schedule 11.02.2013

К сожалению, в MySQL 5.5 не может быть таблицы, которая поддерживает как ограничения внешнего ключа, так и полнотекстовые индексы. Как вы уже отметили, MySQL 5.6 действительно поддерживает полнотекстовые индексы для InnoDB < / а>.

Я рекомендую обновить MySQL, если это возможно. MySQL 5.6 стабилен.

В качестве альтернативы используйте внешний полнотекстовый индекс, например Sphinx или Lucene

person Arnold Daniels    schedule 11.02.2013

К сожалению, для меня нет подходящего варианта. Хотя для plesk нет обновления с новой версией mysql, я не могу обновить сервер, не создавая нестабильности.

Итак, я просто mysqldump свою базу данных и редактирую таблицы и ключи.

Танк за помощь. Хорошего дня

person Raphaël    schedule 13.02.2013