MySQL: полнотекстовая индексация предыдущих записей?
-
03-07-2019 - |
Вопрос
Я добавил индекс FULLTEXT для трех моих столбцов после того, как у меня уже была куча записей ... означает ли это, что FULLTEXT не будет индексировать их и будет только индексировать записи, вставленные после добавления индекса FULLTEXT? Если так, в любом случае переиндексировать всю базу данных?
Решение
Когда вы выполняете команду ALTER TABLE ADD INDEX, старые записи немедленно индексируются (и новые записи индексируются сразу после их вставки). Это верно и для индексов FULLTEXT.
Обратите внимание, что иногда (например, когда вы изменяете параметры ft_min_word_len, ft_max_word_len или ft_stopword_file), вам необходимо перестроить индекс FULLTEXT, см. http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html для получения подробной информации. р>
Другие советы
Ответственность за соответствие индексов данным, которые они индексируют, лежит на MySQL, а не на вас.
Когда вы добавляете индекс для существующих данных, MySQL строит индекс в соответствии с этими существующими данными.
FULLTEXT-индексы не являются исключением.
Вам нужно будет перестроить индекс только в том случае, если вы подозреваете, что ваша таблица каким-то образом повреждена или вы внесли некоторые другие дополнительные изменения в способ, которым MySQL строит свои индексы.