• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql技巧之select count的区别分析

mysql技巧之select count的区别分析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql select count,mysql count,mysql count函数,mysql count 条件,mysql count用法等相关知识,希望本文的分享对您有所帮助

1.测试环境

OS:Linux
DB:mysql-5.5.18
table:innodb存储引擎

表定义如下:

2. 测试场景与分析【统计表group_message的记录数目】

(1)select count(*)方式

(2)select count(1)方式

(3)select count(col_name)方式

分别使用

select count(group_id)

select count(user_id)

select count(col_null)

     通过上述测试结果可以看到,select count(*)和select count(1)都使用了group_id这个最短的二级索引。可能有人会问为啥不用更短的主键索引【int类型】呢,这主要是因为innodb存储引擎下,主键索引实质包含了索引和数据,扫描主键索引实际是扫描物理记录,代价实质是最大的。再来看看几种select count(col_name), count(group_id)使用了最短二级索引,因为该列就是索引列;而count(user_id)则使用了组合索引,由于user_id实质不能利用该索引,但扫描索引也能得到记录数,而且比扫描物理记录代价小,这里应该是mysql的一个优化;count(col_null)则不能使用索引,因为该列含有null值,所以效率最低。另外,对于含有null值的行,count(col_null)实际不会统计,这会与你想统计表记录数目的初衷不符,比如测试表有852226条记录,但col_null列只有1行非空,则统计结果如下:

3.测试结论

mysql中,需要通过selct count 统计表记录数目时,使用count(*)或count(1)就好。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql技巧之select count的区别分析

相关文章

  • 2018-12-05Linux下MySQL5.7.18 yum方式从卸载到安装详解(图文)
  • 2018-12-05Python基础学习代码之面向对象编程
  • 2018-12-05分享insert into语句优化的小技巧
  • 2018-12-05如果修改mysql数据库的密码?
  • 2018-12-05MySQL授权命令grant的使用方法详解
  • 2018-12-05MySQL show命令的用法
  • 2018-12-05sql图形化操作设置级联更新和删除
  • 2018-12-05Oracle 常用的SQL语句
  • 2018-12-05mysql alter table修改表命令整理_MySQL
  • 2018-12-05mysql 10w级别的mysql数据插入

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL-MMM安装指南(Multi-Master Replication Manager for MySQL)
    • SQL Server 索引结构及其使用(一)--深入浅出理解索引结构第1/4
    • 有关mysql中ROW_COUNT()的小例子
    • 了解MySQL如何优化
    • mysql数据库索引类型有哪几种?建立方法和优缺点
    • SQL Server约束增强的两点建议
    • MySQL数据库优化(四)——MySQL索引优化
    • sql2005 安装教程 图文
    • MySQL事务autocommit自动提交
    • mysql多次调用存储过程的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有