实习MySQL-select count(*)和select count

Posted 爱写Bug的王六六

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实习MySQL-select count(*)和select count相关的知识,希望对你有一定的参考价值。

最近遇到的sql语句中经常看到:

https://www.cnblogs.com/zyy1688/p/10436816.html
Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。
经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理由是Count( *)会带来全表扫描。而实际上如何写Count并没有区别。
Count(1)Count(*)实际上的意思是,评估Count()中的表达式是否为NULL,如果为NULL则不计数,而非NULL则会计数

对于Count(列)来说,评估列中每一行的值是否为NULL,如果为NULL则不计数,不为NULL则计数。因此Count(列)会计算列或这列的组合不为空的计数。

如果该表只有一个主键索引,没有任何二级索引的情况下,那么COUNT(*)COUNT(1)都是通过通过主键索引来统计行数的。如果该表有二级索引,则COUNT(1)COUNT(*)都会通过占用空间最小的字段的二级索引进行统计, 这里统计行数的操作,查询优

以上是关于实习MySQL-select count(*)和select count的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-Select语句高级应用

MySQL-Select语句高级应用

腾讯2017暑期实习生编程题

腾讯2017暑期实习生编程题

腾讯2017暑期实习生编程题

Week2 腾讯2019 暑期实习提前批笔试 —— ACWing 569. 猜拳游戏