工作中遇到查询大表时,效率较慢的问题,今天特意做了下实测,数据如下:
就测试出来的数据而言,百万以下的数据,count(0)、count(1)和count(*)在mysql、oracle环境里耗时差别不大,oracle查询效率整体比mysql快;
千万级数据、上亿级数据,效率上count(1)效率更高。
看了下资料,解释大概是下面这样:
count(0)、count(1)可以想象成在表中有一个字段,这个字段的值去全是0或1
count(**)执行时会把*翻译成字段的具体名字,效果同count(0)、count(1)一样,只不过多了个翻译的过程,效率相对会低一点
参考:https://www.jianshu.com/p/dac624f68702