两个sql count和子查询计数语句之间的区别

时间:2010-09-14 11:50:31

标签: sql performance postgresql

这两个sql count语句之间是否有很大的性能差异,当执行大量计数时(此处大,表示100k +记录)

第一

SELECT count(*) FROM table1 WHERE <some very complex conditions>

第二

SELECT count(*) FROM (SELECT * FROM table1 WHERE <some very complex conditions>) subquery_alias

我知道第一种方法是正确的,但我想知道这些陈述是否会表现相似?

2 个答案:

答案 0 :(得分:2)

查询优化器很可能会将您的第二个查询转换为第一个查询。这两个查询之间不应存在可衡量的性能差异。

答案 1 :(得分:0)

答案取决于使用的数据库。对于MS SQL,查询优化器将优化查询,两者都具有相似的性能。但对于其他数据库系统,它取决于查询优化器的智能。