我目前已经实现了用于搜索电影名称的Jquery自动完成功能。我有两个字符,中间有150毫秒的延迟。
我背后有一个PHP和Mysql数据库,类似'%term%'搜索返回结果。
我发现这很慢且数据库密集。
我尝试使用Mysql的全文搜索,但没有太多运气 - 也许我没有使用正确的匹配类型。
有人可以建议调整mysql全文,或者我是否应该直接使用像Lucene或Sphinx这样的索引解决方案,如果它们只能处理只有1-3个字符的部分匹配?
答案 0 :(得分:0)
您受数据库返回结果的速度限制。我建议你加快速度。
对于每个请求,不要从php建立与mysql的新连接。启用数据库连接池。它可以提高性能。我不知道如何在PHP中建立连接池。 This可能有帮助。
如果可能的话,将结果缓存在php中,这样你就不会每次都打到数据库。
使用外部服务为自动填充提供数据。看看Autocomplete as a Service。这样可以减轻您编写自动完成后端的速度,从而产生更快的结果。