Причиной является базирующаяся производительность, да. Понижение предела по умолчанию увеличит пространство, требуемое сохранить индексы, и увеличенный индексный размер занимает больше времени для поиска. Влияние будет зависеть от использования (тип выполненных запросов) и размер текущего набора данных. Минимум по умолчанию равняется 4, можно понизить его как так:
[mysqld]
ft_min_word_len=3
При восстановлении индексов (как Вы должны) убеждаться не восстановить, но отбросьте и восстановите индексы. Это значительно более быстро, чем восстановление их.
mysql> ALTER TABLE tbl_name DROP INDEX ft_index;
Query OK, 9999 rows affected (0.00 sec)
Records: 9999 Duplicates: 0 Warnings: 0
mysql> ALTER TABLE tbl_name CREATE INDEX ft_index( searchable_text );
Query OK, 9999 rows affected (0.00 sec)
Records: 9999 Duplicates: 0 Warnings: 0
Вероятно, Ваше лучшее решение состоит в том, чтобы контролировать размер индексов на dev сервере прежде и после индексного изменения длины.
Наилучший вариант (что я подчинился) состоит в том, чтобы проигнорировать MySQL fulltext соответствие (который имеет серьезные ограничения включая MyISAM только, неспособность соответствовать снабженным префиксом подстановочным знакам, препятствующему списку стоп-слов по умолчанию), и реализуйте решение других производителей. Доступные наилучшие варианты:
Я лично выбрал бы Lucene, хотя он требует локального экземпляра Java. Если это не возможно, Сфинкса очень легко настроить для PHP (пошаговая демонстрация здесь) и много других языков.
Вот являются некоторые хорошие сравнительные тесты и кто-то первыми впечатлениями else на вопрос.
Срок действия RRSIG является (по умолчанию) 30 днями. автоотставка происходит в 3/4 срока действия.
Если у Вас нет потребности изменить их, значения по умолчанию довольно тверды.
[Я работаю на ISC, специалистов по обслуживанию BIND и ISC DHCP]
Knobee / AlanC