1 row in set, 1 warning (0.00 sec)

这样的好处是写法简单,用的是 MySQL 自己的语法。缺点也有,大概有两点:1. sql_calc_found_rows 是全表扫。2. found_rows() 函数是语句级别的存储,有很大的不确定性,所以在 MySQL 主从架构里,语句级别的行级格式下,从机数据可能会不准确。不过行记录格式改为 ROW 就 OK。所以最大的缺点还是第一点。

从 warnings 信息看,这种是 MySQL 8.0 之后要淘汰的语法。

3. 从数据字典里面拿出来粗略的值

那这样的适合新闻展示,比如行数非常多,每页显示几行,一般后面的很多大家也都不怎么去看。缺点是数据不是精确值。

4. 根据表结构特性特殊的取值

这里假设表 ytt1 的主键是连续的,并且没有间隙,那么可以直接  mysql> select max(id) as cnt from ytt1;    +------+    | cnt  |    +------+    | 3072 |    +------+    1 row in set (0.00 sec)

不过这种对表的数据要求比较高。

5. 标准推荐取法(MySQL 8.0.17 建议)

MySQL 8.0 建议用常规的写法来实现。

第五种写法是 MySQL 8.0.17 推荐的,也就是说以后大部分场景直接实时计算就 OK 了。MySQL 8.0.17 以及在未来的版本都取消了sql_calc_found_rows 特性,可以查看第二种方法里的 warnings 信息。相比 MySQL 5.7,8.0 对 count(*) 做了优化,没有必要在用第二种写法了。我们来看看 8.0 比 5.7 在此类查询是否真的有优化?MySQL 5.7

请点击输入图片描述

select count mysql_mysql select count 与 select count 两个执行效率怎样相关推荐

  1. sql语句count_带COUNT()函数SQL SELECT语句

    sql语句count Hey, folks! In this article, we will be focusing on SQL SELECT statement along with COUNT ...

  2. oracle select 重命名,如何在SELECT语句中重命名和引用COUNT(*)?

    我正在尝试在SELECT语句中使用COUNT(*).但是,我需要重新命名它,并能够为WHERE子句引用它. 我尝试过使用AS,我尝试省略AS,因为根据oracle页面似乎没有必要:https://do ...

  3. Select count(*)和Count(1)的区别和执行效率比较

    在MySQL中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数.很多人其实对这三者之间是区分不清的.经常会看到一些所谓的优化建议不使用Count(* )而是使用Cou ...

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

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

  5. oracle count最快的方法,Oracle count哪种写法更快

    1)创建测试表 test@CISCOSYS> create table t as select * from dba_objects; 表已创建. test@CISCOSYS> updat ...

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

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

  7. mysql中select语句子句,了解mysql中select语句操作实例

    Select的语法 SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] ...

  8. 【优化】COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名)

    [优化]COUNT(1).COUNT(*).COUNT(常量).COUNT(主键).COUNT(ROWID).COUNT(非空列).COUNT(允许为空列).COUNT(DISTINCT 列名) 1. ...

  9. High Version Count Issues(SQL高Version Count) (文档 ID 296377.1)

    Troubleshooting: High Version Count Issues (文档 ID 296377.1) In this Document Purpose   Ask Questions ...

最新文章

  1. onsubmit阻止表单提交
  2. Nginx Rewrite详解
  3. Mac下使用OpenCV
  4. wxWidgets随笔(6)-utf8中文(2)
  5. Nginx配置文件详细说明(转)
  6. @Retention注解
  7. ieee39节点系统介绍_Java秒杀系统实战系列-基于ZooKeeper的分布式锁优化秒杀逻辑...
  8. 用__asm写c函数[秋镇菜]
  9. Go 到底算不算一门面向对象的编程语言
  10. vscode + angular
  11. 加密技术,给邮件安全加上一把锁
  12. 电商项目实战--收货地址相关
  13. linux 的 绘画软件,Drawing Linux(简单画图工具)
  14. 12.2版本数据库ORA-20001: Statistics Advisor: Invalid task name for the current user
  15. 化工机械基础期末复习题及答案
  16. Linux下的Curses库的下载与安装
  17. 电影院3d是什么模式的_3D的完整形式是什么?
  18. java 开源 文件同步_利用开源项目使discus论坛与java应用同步登录和注册
  19. 蓝松视频编辑SDK使用说明
  20. java时间戳防重放_API防重放机制

热门文章

  1. Windows 7/Windows Server 2008 R2中创建扩展分区
  2. top、kill实现进程结束
  3. oracle时间类型
  4. 华为机试HJ27:查找兄弟单词
  5. 串灯控制盒去掉怎么接_仿木地板瓷砖怎么样?仿木地板瓷砖怎么铺?
  6. linux7inittab文件不存在,Linux下修复inittab文件丢失的两种方法
  7. Python如何连接Mysql及基本操作
  8. 软件测试从业 3 年+了,怎么兼顾 管理 与 自身成长?
  9. python 3.8.0安卓_Python 3.8.0 正式版发布,新特性初体验
  10. ftp linux 推送文件_Linux下SSH用FTP命令上传文件至另一个FTP空间