Есть ли смысл создавать второй столбец, оптимизированный для поиска FULLTEXT? - PullRequest
3 голосов
/ 12 августа 2010

проект, над которым я работаю, имеет для каждого столбца, в котором нужно искать, второй столбец с именем "ft [columnname]", у которого есть индекс FULLTEXT, и только для этого ищется.

Этот столбецсодержит «оптимизированный» текст, который автоматически генерируется из исходного столбца следующим образом:

  • Строка в нижнем регистре
  • Все акценты удалены
  • Всезнаки пунктуации и неисследимые символы удаляются
  • удаляются все повторяющиеся слова
  • все слова сортируются от самых длинных до самых коротких
  • другие преобразования, которые я не совсем понимаю (связанныена комбинированные слова)

Например, "Мне нравятся покемоны, особенно Пикачу!"становится "особенно покемон пикачу, как я".

Есть ли какой-либо (даже очень маленький) выигрыш в производительности?Данные в базе данных никогда не изменяются динамически.

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Для вашего конкретного приложения может быть полезна функциональность, но хранение данных в двух экземплярах в значительной степени влияет на производительность, а не на выгоду.

Поскольку ваши данные теперь в два раза больше, принимая во внимание достаточно большой набор данных, на разных уровнях кэширования (например, MySQL, OS) можно удерживать только половину, поэтому вы будете много читать с диска больше, что является нормальным узким местом.

Сказав, что, если вы используете однобайтовый набор символов в индексированном столбце ft, но многобайтовый набор символов в исходном тексте, ваш полнотекстовый индекс может быть намного меньше, чем он был бы в противном случае.

0 голосов
/ 12 августа 2010

Честно говоря, вы не должны делать это во 2-м столбце, поскольку при этом подразумевается, что вы используете MyISAM механизм хранения для производственной таблицы.(или продолжайте, если вы можете позволить себе потерять некоторые данные).

На самом деле, вы заботитесь о производительности, поэтому вам следует подумать об использовании полнофункционального полнотекстового поискового механизма, такого как Sphinx : http://www.sphinxsearch.com/

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