sql count 函数用法


count(*) 会查询所有记录数,,包括为null值的数据;

count(column)不会包含 column值为null的情况;

count(1) 和 count(*)相同,,不同的是,,mysql不同的存储引擎,对count(*)做了不同的优化

阿里开发手册中,,强制要求用count(*),而不是其他两种

count(*)是 SQL92 定义的
标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。

 

常用的引擎为InnoDB和MyISAM

InnoDB ; 支持事务,,,行级锁  ,必须进行全表扫描,扫描索引值,,非聚簇索引的叶子只保存,数据位置,而聚簇索引包含整行数据,查询时会找小的索引值进行索引扫描

前提是查询中不包括where以及group by条件语句;

MyISAM : 不支持事务,。,,表级锁,,会将每张表的count值,存贮下来,当访问时,直接返回,但是不能加where(此优化并不会影响数据的准确性,因为他是表级锁,,并发的修改不会发生))


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM