我像Google Suggest一样为我的网站添加搜索建议,但速度很慢...... 我是这样做的: 当用户在搜索栏中输入时,我使用Ajax将关键字传递给php文件,该文件使用如下语句在数据库(MySql)中搜索关键字:
SELECT DISTINCT keywords
FROM `searchrecord`
WHERE keywords LIKE '$keywords%'
表'searchrecord'有大约500,000条记录。
但最后,速度几乎无法忍受,我必须等待很长时间才能看到提示词突然出现。你对如何提高速度有任何建议吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
如果列上有索引,那么最后使用'%'的类似查询应该很快。这确实是使用索引的最佳方式。但是如果你在搜索开始时添加'%',你将有效地放松所有的索引速度(你将不得不使用全文搜索,这也将防止出现问题)
您还应该检查查询的安全性,我们都希望您的$ keywords变量在使用前已经过消毒。
如果关键字是您的查询应该是关键字列表:
WHERE keyword IN ('key1','key2','key3')
或者:
WHERE keyword LIKE 'key1%' OR keyword LIKE 'key2%' OR keyword LIKE 'key3%'