Как я могу увеличить скорость поиска? - PullRequest
0 голосов
/ 23 декабря 2010

Я добавляю поисковое предложение для своего сайта точно так же, как Google Suggest, но скорость немного медленная ... Я сделал это следующим образом: Когда пользователь вводит в строке поиска, я использую Ajax, чтобы передать ключевое словоphp-файл, который выполняет поиск по ключевому слову в базе данных (MySql) с помощью следующего предложения:

 SELECT DISTINCT keywords
 FROM  `searchrecord` 
 WHERE keywords LIKE '$keywords%' 

в таблице 'searchrecord' содержится около 500 000 записей.

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

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

Подобный запрос с '%' в конце должен быть быстрым, если у вас есть индекс для столбца. Это действительно лучший способ использовать индекс. Но если вы добавите «%» в начале поиска, вы фактически потеряете всю свою скорость индексации (и вам придется использовать полнотекстовый поиск, который также предотвратит проблемы с регистром)

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

И если ключевые слова - это список ключевых слов, ваш запрос должен быть:

WHERE keyword IN ('key1','key2','key3')

Или:

WHERE keyword LIKE 'key1%' OR keyword LIKE 'key2%' OR keyword LIKE 'key3%'
1 голос
/ 23 декабря 2010

я рекомендовал использовать o mysql полнотекстовый поиск

вы можете посмотреть в Интернете учебники.

хорошая статья:

http://devzone.zend.com/article/1304

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