使用twitter bootstrap typeahead
我在typeahead的 source 中给出了一个php页面“getItems.php”的路径。
getItems.php 从3个表中获取结果: -
SELECT pm . * , p.pname, pc.cid
FROM products p, products_mrp pm, products_category pc
WHERE p.pid = pm.pid
AND p.pid = pc.pid
AND p.pname like '%$text%' limit 7
执行此查询大约需要22秒。
我该怎么做才能缩短抓取时间?因为等待自动完成的22秒是没有意义的。
答案 0 :(得分:0)
希望你对这个问题做了一些调查。 请参阅以下文档,并确保输入数据库类型。 4 Query Optimizer Concepts
答案 1 :(得分:0)
需要更多信息......
为每个表显示CREATE TABLE。
各个xid是每个表中的PRIMARY KEY吗?如果它们不是(也没有任何其他类型的指数),那么这将解释这种迟缓。
使用显式JOIN更清晰,而不是“逗号加入”:
FROM products p
JOIN products_mrp pm ON p.pid = pm.pid
JOIN products_category pc ON p.pid = pc.pid
答案 2 :(得分:0)
首先,您是否在表上设置了索引?这是提高数据库速度的绝对最简单的方法。 Read up on the details here
我建议使用MySQL Tuning Primer Script located here。非常容易使用&这些建议非常适合。
根据您的设置,您可能需要了解如何通过手动进行性能调整 - 这意味着您将学会自己解释MySQL输出并对其进行操作 - 但此脚本可以很好地用于我曾经使用它们的95%的设置。另外5%是数据库特性设置,需要更多的自定义护理。我强烈推荐像this one on the MySQL performance blog这样的教程。