《MySQL中 count(1) 比 count(*)效率更优?》要点:
本文介绍了MySQL中 count(1) 比 count(*)效率更优?,希望对您有用。如果有疑问,可以联系我们。
科多大数据为大家简单的介绍mysql中count(1)与count(*) 性能比拟.
通常年夜家走入一个误区是,count(*) 为全表扫描,所以认为count(*) 的效率是最低的.而实际上,如何写count 并没有什么太年夜的区别.
sql调优,主要是考虑低落:consistent gets和physical reads的数量.
count(1)与count(*)比拟:
假如你的数据表没有主键,那么count(1)比count(*)快
如果有主键的话,那主键(结合主键)作为count的条件也比count(*)要快
如果你的表只有一个字段的话那count(*)便是最快的啦
count(*) count(1) 两者比拟.主要还是要count(1)所相对应的数据字段.
如果count(1)是聚索引,id,那肯定是count(1)快.然则差的很小的.
因为count(*),自动会优化指定到那一个字段.所以没需要去count(?),用count(*),sql会帮你完成优化的
count详解:
count(*)将返回表格中所有存在的行的总数包含值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).
distinct 列名,得到的结果将是撤除值为null和重复数据后的结果
总结三条履历
1.任何环境下SELECT COUNT(*) FROM tablename是最优选择;
2.尽量削减SELECT COUNT(*) FROM tablename WHERE COL = 'value’ 这种查询;
3.杜绝SELECT COUNT(COL) FROM tablename的呈现.
@来自科多年夜数据,转载注明出处
现在还不清楚本身是否适合学习大数据的小伙伴们可以点击以下链接或者扫描二维码测试一下哦~
http://www.101test.com/cand/index必修paperId=21VNJU
维易PHP培训学院每天发布《MySQL中 count(1) 比 count(*)效率更优?》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7831.html