На
Наталья

MySQL какой запрос максимально быстро отработает 84000 строк, если надо вывести строки в которых есть искомое значение?

таблица 11 полей, 84 000 строк, надо максимально быстро отработать запрос, чтобы вывести все строки в которых одно из значений совпадает или содержит часть (LIKE) искомое

Если можно маленький пример запроса

Если я правильно понял, то испольцуя индексы, селект выбирает строки по наличию искомого в определенном столбце, а у меня искомое может быть в любом столбце, значит ли это, что мне тупо надо построчно пройти всю таблицу, или все таки как то применить индексы?

L7
Leito 7

Ну если для like-а невозможно использовать индексы, то будут все строки проверяться. А если like например по началу индексированного поля, то будет использоваться индекс без скана таблицы.

ЕМ
Елена Мананникова

А что? Есть варианты? Select - он и в Африке select... Если часто нужно пользоваться похожими выборками, то можно добавить индекс по нужному полю. Это максимально ускорит выборку. А остальное - дело СУБД.

АГ
Анастасия Гусейнова

быстрее всегда искать по индексированной колонке. Использование Like нежелательно, т. к. при поиске по индексу количество операций сравнения будет не более Ln2(84000) = ~ 16 - 17, а в случае поиска с помощью Like - всегда будут обрабатываться все строки.
Хотя, при количестве 84000 разница особо заметна не будет

МM
Марина Marinus

Используй индексы.

Похожие вопросы
Проблема с запросом к БД - MySQL
Что не так в этом проклятущем MySQL запросе!?
Максимально допустимое значение BIGINT UNSIGNED MySQL ?
запрос в mysql (update)
Подскажите пожалуйста как вывести из mysql все строки и удалить не нужные?!
Подскажите пожалуйста как вывести из mysql все строки и удалить не нужные?!!
Простой запрос в MySQL
Запрос MYSQL
mysql запрос
Как вывести нумерацию строк sql-запросом?