说明

查询符合条件的行数的SQL语句,常有如下三种,效率各不相同。

> SELECT COUNT(*) FROM user;
> SELECT COUNT(1) FROM user;
> SELECT COUNT(id) FROM user;

在MYISAM存储引擎下,COUNT(*)的效率是最高的。因为该类存储引擎有内部计数器,可直接返回符合条件的行数。

在INNODB存储引擎下,COUNT(*)和COUNT(1)的效率差不多,COUNT(字段)的效率最低。因为COUNT(字段)需要对每一个字段做判断,判断其是否为NULL。

面试题

以下SQL语句的查询结果是否一致,说明理由?

> SELECT COUNT(*) FROM user;
> SELECT COUNT(id) FROM user;
> SELECT COUNT(*) FROM user WHERE id LIKE "%%";

答:第一条SQL查询的是user表的总行数,第二条SQL语句和第三条SQL查询的也是排除字段id为NULL的行数。

MySQL COUNT(*) 和 COUNT(1) 比较相关推荐

  1. mysql count 返回0_如何在MySQL中使用COUNT時返回0而不是null

    我正在使用此查詢返回存儲在$ sTable中的歌曲列表以及存儲在$ sTable2中的總項目的COUNT.如何在MySQL中使用COUNT時返回0而不是null /* * SQL queries * ...

  2. Mysql中的count()与sum()区别

    Mysql中的count()与sum()区别 首先创建个表说明问题 CREATE TABLE `result` ( `name` varchar(20) default NULL, `subject` ...

  3. MySQL:SELECT COUNT 小结

    作者 | 翁智华 来源 | https://www.jianshu.com/p/4913fdd1e277 背景 今天团队在做线下代码评审的时候,发现同学们在代码中出现了 select count(1) ...

  4. mysql 求count和_MySQL的统计总数count(*)与count(id)或count(字段)的之间的各自效率性能对比...

    执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和coun ...

  5. Mysql之count(*),count(1),count(field)区别、性能差异

    目录 前言 COUNT(*)与 COUNT(1) MyISAM引擎中的COUNT(*)与 COUNT(1) Innodb引擎中的COUNT(*)与 COUNT(1) 实验 原理 结论 Count(1) ...

  6. mysql下count(*)和count(1)的区别

    2019独角兽企业重金招聘Python工程师标准>>> 今天看公司项目发现了一个奇怪sql写法 select count(8) from .... 这也许是开发人员不小心或者是习惯把 ...

  7. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧

    本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...

  8. mysql55和57的区别_技术分享 | MySQL:count(*)、count(字段) 实现上区别

    我们继续来讨论一下 count(*).count(字段)实现上的区别.注意我们这里都使用 Innodb 做为存储引擎,不讨论其他引擎.因为了有了前面的讨论,更容易看出它们的区别,这里我们有如下注意点: ...

  9. MySQL中count(1),count(*),count(某字段)等用法联系和区别

    一. 从执行结果来看 count(*):所有行进行统计,包括NULL行count(1):所有行进行统计,包括NULL行count(column):对column中非Null进行统计 二. 从执行效率上 ...

  10. sqlserver建表语句_重新认识MySQL中的COUNT语句

    在数据库的增删改查操作中,使用最频繁的就是查询操作. 而在所有查询操作中,统计数量操作更是经常被用到. 关于数据库中行数统计,无论是MySQL还是Oracle亦或者是SqlServer,都有一个函数可 ...

最新文章

  1. 界面Hello world
  2. sqlite命令行查看数据显示列头、java访问sqlite、java命令指定classpath
  3. Oracle基础知识-Oracle不同的启动关闭方式
  4. 福禄克网络电缆测试仪LinkIQ网络电缆测试仪的使用方法
  5. [js] 微信小程序实现轨迹回放,微信原生小程序,基于uniapp的小程序?
  6. Java创建Timestamp的几种方式
  7. 安谋中国发布“玲珑”多媒体产品线,首款ISP处理器面世
  8. 一大波DeepMind专利来袭,AI圈瑟瑟发抖:连RNN都是你家的?
  9. c语言求5个整数最小公倍数,C语言求两个正整数的最小公倍数和最大公约数
  10. linux循环显示系统时间,Linux shell时间处理大全,值得收藏
  11. python爬虫:案例二:携程网酒店价格信息
  12. 希尔顿集团大中华区第450家酒店开业;Gap在山东青岛开新店 | 美通企业日报
  13. adobe acrobat 无效批注对象
  14. 石沉大海的简历和优质简历的差别
  15. 模仿Airbnb的悬浮搜索框动画
  16. java qq邮箱服务器端口_spring mail借助qq邮箱服务器发送邮件
  17. 从spark.default.parallelism参数来看Spark并行度、并行计算任务概念
  18. C 语言for的语法规则和for(;;)的解析
  19. DAY TRADER
  20. 可计算 NFT:概念、意义和核心思想

热门文章

  1. 华为路由器OSPF多区域配置
  2. JS导入Excel实战
  3. 如何快速入门成为一名数据分析师
  4. 一周上榜新书:强化学习、深度学习最受程序员关注
  5. php电脑端打开微信页面大小,电脑微信小程序设置全屏的方法是什么?
  6. 计算机一级考试选网络题广东,广东计算机一级考试试题及答案
  7. morris算法(莫里斯遍历) [数据结构与算法]
  8. 版图ECO的那点事(下)
  9. 如何高效建设传奇的DAO
  10. 腾冲樱花谷原生态旅游景区公园网站制作完成