我目前实现了 Jquery 自动完成功能,用于搜索电影名称。我让它以 2 个字符开头,中间有 150 毫秒的延迟。
我背后有一个 PHP 和 Mysql DB,它执行类似“%term%”的搜索来返回结果。
我发现这非常慢并且需要大量数据库。
我尝试使用 Mysql 的全文搜索,但运气不佳 - 也许我没有使用正确的匹配类型。
有人可以建议对 mysql 全文进行调整吗?或者我是否应该直接使用 Lucene 或 Sphinx 这样的索引解决方案,以及它们是否在仅包含 1-3 个字符的部分匹配上运行良好?
最佳答案
您受到数据库返回结果的速度的限制。我可以建议您遵循以加快速度。
不要为每个请求从 php 建立到 mysql 的新连接。启用数据库连接池。它大大提高了性能。我不知道如何在php中做连接池。 This可能会有所帮助。
如果可能的话,将结果缓存在 php 中,这样就不会每次都访问数据库。
使用外部服务来提供自动完成数据。看Autocomplete as a Service 。这可以减轻您编写自动完成后端的负担,产生更快的结果。
关于php - 自动完成电影名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24223475/