查询1.
select count(*),gender from customer group by gender
查询2.
select count(*),'M' from customer where gender ='M' union select count(*),'F' from customer where gender ='F'
第一个查询更简单,但由于某些原因在分析器中,当我同时执行两个查询时,它表示查询2使用39%的时间,查询1,61%.
我想了解原因,也许我必须重写我的所有疑问.
在第一个查询中,DBMS需要解码行以读取性别,然后它需要对行进行排序或构建哈希表以聚合它们.这比计算行更昂贵.