- WHERE = 指定行所对应的条件
- HAVING = 指定组所对应的条件
都可使用的条件,WHERE处理速度更快。
COUNT(*)对表中数据进行聚合操作,DBMS内部进行排序处理,尽可能减少排序的行数,才能增加处理速度。
通过WHERE指定条件,由于排序之前对数据进行过滤,所以能过减少排序的数据量,而HAVING是在排序之后才对数据进行分组,因此和 WHERE 子句中指定条件比起来,排序的数量多很多。第二,可以通过对WHERE指定条件所对应的列创建索引,也可以大幅度提高处理速度,创建索引是一种非常普遍的提高DBMS性能的方法,效果十分明显。