Adr*_*ert 2 php mysql query-optimization
我们假设我有以下查询:
SELECT地址
FROM地址a,名称n
WHERE a.address_id = n.address_id
GROUP BY n.address_id
HAVING COUNT(*)> = 10
如果这两个表足够大(想想我们在这两个表中是否有整个美国人口)那么在这个SELECT上运行一个EXPLAIN会说Using temporary; Using filesort这通常不好.
如果我们有一个包含许多并发INSERT和SELECT的DB(如此),那么将该GROUP BY a.address_id HAVING COUNT(*) >= 10部分委托给PHP是一个很好的计划来最小化数据库资源?对此进行编码最有效的方法(就计算能力而言)是什么?
编辑:似乎共识是卸载到PHP是错误的举动.那怎么样,我可以改进查询(让我们假设索引已经正确创建)?更详细地说,如何避免DB创建临时表?