Как использовать индекс FULLTEXT в MySQL? - PullRequest
1 голос
/ 02 августа 2011

Предположим, у меня есть две таблицы stuff и search_index. По разным причинам я бы предпочел сгенерировать пользовательскую таблицу индексов со схемой в соответствии со следующим:

Я считаю, что это должна быть отдельная таблица, поскольку для поддержки FULLTEXT потребуется MyISAM механизм хранения. Все остальные мои таблицы InnoDB для поддержки транзакций.

search_index (MyISAM):
-----------------------
stuff_id    BIGINT    PRIMARY
keywords    TEXT      FULLTEXT  ; Not same as text in `stuff`
                                ; (optimised & space delimited)

Как часто search_index таблица должна обновляться:

  1. Всякий раз, когда stuff записей создаются или обновляются.

  2. Периодически проверять «грязные» stuff записи и обновлять search_index соответственно.

  3. Другое ...

Я считаю, что преимущество 1 будет проще поддерживать, и поиск сразу вступит в силу, но с немедленным переиндексированием в базе данных. 2 не будет таким эффективным, но вся переиндексация может произойти за один удар. Это правда?

Насколько эффективен MySQL при вставке / обновлении записей, имеющих индексацию FULLTEXT?

Дополнительное примечание: я пытаюсь сделать схему максимально переносимой (разные драйверы rdbms с PDO)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...