≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > MySQL

MySQL技巧之select count的区别分析

人气:412 时间:2020-07-09

这篇文章主要为大家详细介绍了MySQL技巧之select 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)就好。

本文来自:http://www.q1010.com/177/9707-0.html

注:关于MySQL技巧之select count的区别分析的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:MYSQL

您可能感兴趣的文章

  • MySQL高级查询之与Group By集合使用介绍
  • master and slave have equal MySQL server ids
  • MySQL中使用自定义变量 编写偷懒的UNION示例
  • MySQL使用inner join 进行 查询/删除/修改示例
  • MySQL中触发器入门简单实例与介绍
  • MySQL 关键词相关度排序方法详细示例分析
  • 在Python安装MySQL支持模块的方法
  • MySQL数据库安全设置与注意事项小结
  • INSERT INTO .. ON DUPLICATE KEY更新多行记录
  • 浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用
上一篇:MySQL的binary解决MySQL数据大小写敏感问题的方法
下一篇:MySQL主从不同步延迟原理分析及解决方案
热门文章
  • mysql 修改character_set_server为utf-8的简单示例
  • 解决MySQL丢失文件localhost.localdomain.pid、mysql.sock的示例
  • MySQL 数据类型binary和varbinary的简单示例
  • MySQL:reading initial communication packet问题解决方法
  • MySql 表类型MYISAM、InnoDB区别
  • bash: mysql: command not found 的解决方法
  • MYSQL默认用户名ROOT修改方法
  • MySQL 常用命令菜鸟教程
  • MySQL 使用命令行新建用户并授予权限
  • MySql 数据库物理文件存放位置查看示例
  • 最新文章
    • MySQL查看死锁与解除死锁的简单示例
    • MySQL 慢查询的功能实例
    • MySQL查看死锁与去除死锁的简单示例
    • MySQL找出未提交事务的SQL的简单示例
    • MySQL锁阻塞的的简单示例
    • MySQL中的binary类型使用操作的示例
    • SQL优化教程之in与range查询的简单示例
    • MySQL 的 21 个规范、优化最佳实践!
    • MySQL 字符类型大小写敏感的简单示例
    • 解决mybatis-plus分页传入参数后sql where条件没有limit分页信息的问题

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。