2010-04-14 2 views
3

Неправильная практика создания зеркальной таблицы (MyISAM) записей в таблице InnoDB для целей полнотекстового поиска? Я так понимаю, я просто ищу копию данных, и если что-то случится с этими данными, это не так много, потому что она всегда может быть воссоздана. Но это просто неудобно.Плохая практика для зеркалирования таблиц MySQL?

(MyISAM является единственным двигателем, который поддерживает полнотекстовый поиск, но мне нужно использовать ограничение внешних ключей, предлагаемые InnoDB)

Должен ли я избежать этого?

ответ

1

Прежде всего, вы считаете, что используете хороший поисковик? например, lucene: http://lucene.apache.org/java/docs/ ускорит поиск, поскольку он создает свои собственные индексные таблицы.

Если вы определенно хотите использовать встроенный полнотекстовый поиск mysql, вы можете сократить таблицу myisam, чтобы он просто содержал текстовые данные, которые вы хотите выполнить поиск, и первичный ключ, а затем извлекать правильные данные из обычные таблицы innodb, как только вы узнаете pkey. что позволит избежать дублирования других данных в таблице.