我怎样才能提高搜索建议的速度?

时间:2010-12-23 08:12:05

标签: php javascript mysql sql

我像Google Suggest一样为我的网站添加搜索建议,但速度很慢...... 我是这样做的: 当用户在搜索栏中输入时,我使用Ajax将关键字传递给php文件,该文件使用如下语句在数据库(MySql)中搜索关键字:

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

表'searchrecord'有大约500,000条记录。

但最后,速度几乎无法忍受,我必须等待很长时间才能看到提示词突然出现。你对如何提高速度有任何建议吗?

2 个答案:

答案 0 :(得分:1)

我推荐的是使用mysql full text search

你可以在网上查找教程。

一篇好文章:

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

答案 1 :(得分:1)

如果列上有索引,那么最后使用'%'的类似查询应该很快。这确实是使用索引的最佳方式。但是如果你在搜索开始时添加'%',你将有效地放松所有的索引速度(你将不得不使用全文搜索,这也将防止出现问题)

您还应该检查查询的安全性,我们都希望您的$ keywords变量在使用前已经过消毒。

如果关键字是您的查询应该是关键字列表:

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

或者:

WHERE keyword LIKE 'key1%' OR keyword LIKE 'key2%' OR keyword LIKE 'key3%'