错误的数据库查询设计指南

时间:2011-01-15 22:50:38

标签: mysql

查询数据库的一个指导原则是尽可能地在1个查询中进行分割,而不是将其拆分。因为即使它会导致很少的连接,查询优化器也会优化它。
然后我注意到一个查询导致1行花了1.5秒,我检查了为什么会这样。
查询就像

SELECT a.b FROM a, c WHERE a.d = c.e AND c.f = 'g'

虽然我知道c.f = 'g'匹配一行,但我认为正如指南所说,查询优化器会抓住它。嗯,事实并非如此 将此拆分为两个查询,第一个检索c.e,第二个查询使用该查询将a.b缩短时间缩短到几毫秒。 我有[{1}}的{​​{1}}外键,并且提到了除a.d唯一索引的列,两个表都有大约2 mil行,我使用c.ea.b
它真的是指南的问题还是我理解错了?

1 个答案:

答案 0 :(得分:2)

还要记住,您可以通过查询缓存,操作系统调整等其他方式提高性能:http://forge.mysql.com/wiki/Top10SQLPerformanceTips