Есть 100М самых разнообразных фраз. Длина фразы до 10 слов, есть куча дополнительных столбцов типа integer. Нужно искать все фразы, содержащие одно, два или три слова. Иногда в запросе будет упоминаться значение одного из полей типа integer. Количество поисков будет очень большим, повторяющиеся запросы редки. Требуется максимизировать скорость выборки данных. Что посоветуете?
P.S. Пока хочу сделать так: загнать всё в Mysql и сделать доп. таблицу слово-номер_фразы. Или загнать в mysql и делать LIKE.
SEO написал:
Есть 100М самых разнообразных фраз. Длина фразы до 10 слов, есть куча дополнительных столбцов типа integer. Нужно искать все фразы, содержащие одно, два или три слова. Иногда в запросе будет упоминаться значение одного из полей типа integer. Количество поисков будет очень большим, повторяющиеся запросы редки. Требуется максимизировать скорость выборки данных. Что посоветуете?
P.S. Пока хочу сделать так: загнать всё в Mysql и сделать доп. таблицу слово-номер_фразы. Или загнать в mysql и делать LIKE.
Загнать в MySQL версии не меньше 4.1.16 (не спрашивайте почему, начну ругаться матом) и построить full text индекс. На 100 мб и большом количестве ОЗУ (скажем 512 мб памяти) будет однозначно летать. Не забудьте перед постройкой индекса выставить в my.cnf параметры
ft_min_word_len=1
ft_stopword_file=
Не знаю, насколько адекватно работает full text в mysql 5.x