2012-02-28 2 views
1

У меня есть таблица myISAM с 2,5 миллионами и растущими рядами. Это myisam, поскольку мне требуется полный поиск в FullText.Преимущества mysql триггера для workaround Innodb отсутствие полнотекстового поиска

Проведя некоторые исследования stackoverflow, я ищу в создании таблицы снова как таблицу InnoDB, а затем создаю копию в myISAM. Затем я создам триггеры, которые будут реплицировать любые изменения в таблице innodb в таблицу myisam.

Таблица innodb будет функционировать лучше, поскольку она работает транзакционно и не блокирует всю таблицу, когда она записана или обновлена.

Мой вопрос: заметлю ли вы большую пользу в таблице myisam, так как он будет написан так же часто, как и раньше, потому что каждая запись в таблицу innodb приведет к последующей записи в myisam.

Любые предложения или другие идеи с благодарностью получены.

Brett

ответ

0

Использование триггеров для копирования из MyISAM в InnoDB есть риск создания несовместимых данных, когда транзакции откатываются.

Лучшей идеей может быть установка полнотекстовой поисковой системы, такой как Sphinx, которая может работать с таблицами InnoDB.

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

Также некоторые хорошие новости: начиная с MySQL 5.6. InnoDB получает полный текстовый поиск.

+1

Спасибо, теперь я использую 5.6, а полнотекстовый текст отлично работает на столе Innodb – bertster

+0

Отлично! Yay для ранних усыновителей :) – Mchl

Смежные вопросы