Как сделать MySQL запрос быстрее, используя индексацию - PullRequest
0 голосов
/ 23 февраля 2012

У меня почти 25000 строк в таблице вопросов , и у меня также есть следующий запрос.Можно ли реализовать индексацию, чтобы сделать запрос более эффективным.Если да, пожалуйста, дайте мне пример кода.У меня есть вызов ajax при каждом вводе ключа.

SELECT question, url_question FROM `questions` 
WHERE detail LIKE '%a%' OR question LIKE '%a%';

Ответы [ 4 ]

1 голос
/ 23 февраля 2012

Нет, если вы хотите найти одну букву.
Начиная с 3 вы можете использовать полнотекстовый поиск

1 голос
/ 23 февраля 2012

создайте полнотекстовый ключ на своих полях, например,

ALTER TABLE questions
ADD FULLTEXT KEY `detail` (`IX_detail`);

и

ALTER TABLE questions
ADD FULLTEXT KEY `question` (`IX_question`);
0 голосов
/ 23 февраля 2012

сохраняйте проверку длины поиска, если можете, и не отправляйте запрос, если длина строки меньше 2 или 3, что остановит ненужный запрос, далее вы можете установить ограничение в запросе SQL это улучшит производительность

0 голосов
/ 23 февраля 2012

Вы можете оптимизировать запросы, используя функцию MySQL EXPLAIN - см .: http://dev.mysql.com/doc/refman/5.1/en/using-explain.html

Подключитесь к вашему серверу MySQL и выполните следующую инструкцию:

mysql> EXPLAIN $YOURSTATEMENTGOESHERE;

MySQL вернет полезныйОбзор всех строк / столбцов, затронутых этим утверждением.На основе этой информации вы можете добавить несколько эффективных индексов.

Читайте также http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html, чтобы лучше понять, как MySQL использует индексы.

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