[MySQL] Поиск подстрок в текстовых полях?

uncle17

То ли я туплю, то ли что... Есть таблица с текстами. Файлу search.php передается $string. Как выбрать те записи, в которых есть string? Поэффективнее... Пока что там сотня текстов килобайт по 10 каждый.

Ivan826

SELECT id FROM table WHERE text LIKE '%string%'

uncle17

это как раз не канает... На этот же движок будет вешаться лента новостей. Их - 10-20 в день. Сколько будет такой запрос кушать времени?

evgen5555

CREATE INDEX

uncle17

а вот с этого места поподробней...

evgen5555

Индексы пашут тока для запросов, не начинающихся с '%'.

uncle17

можешь в двух словах объяснить про индексы, чтоб не читать?

rosali

Индексы пашут тока для запросов, не начинающихся с '%'.
По моему субъективному ощущению это не верно.

ava3443

Для обычных индексов это верно:
The index also can be used for LIKE comparisons if the argument to LIKE is a constant string that doesn't start with a wildcard character.
(цитата из http://dev.mysql.com/doc/mysql/en/mysql-indexes.html )
Однако, есть full-text indexing

rosali

Ну может они просто в документации перестраховались, вот и все. Я много раз замечал что select-ы наподобие like "%klmn%" выполняются "мгновенно" на сравнительно больших таблицах, так что в full scan трудно поверить...

ava3443

Да я и сам 20 минут назад про это в документации прочитал, а так вроде всегда использовал без проблем

uncle17

не сказал бы, что мгновенно, но приемлемо... у меня запрос занимает в среднем .03 секунды по одному слову

stm7884696

А есть же в мускуле встроеные запросы с поиском по релевонтности. Мне пока ненадо было, но точно знаю, что есть... http://www.mysql.ru/docs/man/Fulltext_Search.html

uncle17

во... вот это уже лучше, сенкс

stm7884696

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

ava3443

Я выше уже давал на него ссылку кстати.

stm7884696

мы в россии живем, по русски понимать легче

ava3443

А, и правда! Я вроде на твою ссылку поглядел (заходить - не заходил но от моей отличить не смог :-)
Оставить комментарий
Имя или ник:
Комментарий: