前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql中count()函数的用法

mysql中count()函数的用法

作者头像
IT云清
发布2019-01-22 10:59:50
3.4K0
发布2019-01-22 10:59:50
举报
文章被收录于专栏:IT云清

数量查询时,有如下几种方式:

1.下面三种方式,在多数情况下效率是基本相同的,但问题在于,很多情况下,我们数据库可能有脏数据,比如重复数据,或者某条数据重要字段是null的,那下面的这几种,会把这种脏数据也统计上,本质都是统计满足条件的行数的:

代码语言:javascript
复制
select count(*) from `user` 
代码语言:javascript
复制
select count(1) from `user` 
代码语言:javascript
复制
select count(1) from `user` 

2.如果有一张字段很多的表,比如user表,第2个字段是user_name ,第20个字段是school_major,那么下面第一条会比第二条快很多,经过测试,字段在表中越靠后,count时效率越低:

代码语言:javascript
复制
select COUNT(`user_name`) FROM `user` 
代码语言:javascript
复制
select COUNT(`school_major`)FROM `user` 

3.如果count(column),这个column是建了索引的,那么速度会比没有建立索引的快很多

4.使用count(column)时,一定要注意思考业务逻辑,比如说,查询user表中一共有多少人: 很多人上来就

代码语言:javascript
复制
select count(*) from `user` 

这时候,如果数据库中出现同一条记录出现了两遍呢?如果某条记录user_name是空的呢?那下面三种写法,出现的结果就完全不同了:

这是查询这张表的总行数,重复的和null的都算进去。

代码语言:javascript
复制
select count(*) from `user`

这是查询这张表中user_name不为空的行数。

代码语言:javascript
复制
select count(user_name) from `user`

这是查询这张表中,user_name有多少不重复的行,null的也会被统计为一行。

代码语言:javascript
复制
select count(distinct(user_name)) from `user`

以上数据,是在mysql数据库,100万条数据,200万条数据,和300万条数据下做出验证的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年04月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档