Подтвердить что ты не робот

Mysql как повышение производительности

В любом случае, чтобы ускорить mysql, как производительность оператора, если задействована дикая карта? например. например, "% test%"

4b9b3361

Ответ 1

MySQL может использовать индекс, если ваш запрос выглядит как foo LIKE 'abc%' или foo LIKE 'abc%def%'. Он может использовать индекс для любой части или строки перед первым шаблоном. Если вам нужно сопоставить слово где угодно внутри строки, вы можете захотеть вместо этого использовать индексы FULLTEXT.

Подробнее о индексах: http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html

Полнотекстовый поиск: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

Ответ 2

Ну, самая простая оптимизация - иметь постоянный префикс (например, "test%" вместо "%test" или "%test%"), так как это позволит движению сузить пространство поиска с помощью индексов. Однако это невозможно во всех ситуациях.

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