我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL 5.7下InnoDB对COUNT(*)的优化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL 5.7下InnoDB对COUNT(*)的优化

在MySQL 5.7 COUNT()会选择聚集索引,进行一次内部handler函数调用,即可快速获得该表总数

执行计划显示:Extra:Select tables optimized away

5.7以前的版本中,COUNT()请求通常是:扫描普通索引来获得这个总数。
6.执行计划显示: Extra:Using index

如果聚集索引较大(或者说表数据量较大),没有完全加载到buffer pool中的话,MySQL 5.7的查询方式有可能反而会更慢,还不如用原先的方式(MySQL 5.6)
解决办法:强制走普通索引,不过还需要加上WHERE条件,否则还是不行
select count() from stock force index(idx_stock) where id >0;
extra:using where,using index

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL 5.7下InnoDB对COUNT(*)的优化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL 大表的count()优化实现

以下是基于我结合B+树的数据结构和对实验结果的推测作出的判断,如有错误,恳请指正! 今天实验了一下MySQL的count()操作优化, 以下讨论基于mysql5.7 InnoDB存储引擎. x86 windows操作系统。 创建的表的结构如
2022-05-12

MySQL COUNT函数的使用与优化

COUNT 函数做什么用?COUNT 是一个专用的函数,通常有两种不同的方式:计算值和数据行。值指的是非空(Non-NULL)表达式(NULL表示值缺失)。如果我们在 COUNT的参数中指定了列名或其他表达式,则 COUNT 函数是计算该表
2022-05-11

MySQL大表count()的优化实现示例

小编给大家分享一下MySQL大表count()的优化实现示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天实验了一下MySQL的count()操作优化, 以下
2023-06-14

InnoDB 性能调优 – 优化 MySQL 数据库的关键 InnoDB 变量

InnoDB 是 MySQL 的核心存储引擎,即使在最具挑战性的生产环境中也以其可靠性和性能而闻名。要真正优化 InnoDB,您需要深入了解各种系统变量以及它们如何与您独特的服务器设置以及工作负载的特定需求交互。如果正确配置这些设置,即使在
InnoDB 性能调优 – 优化 MySQL 数据库的关键 InnoDB 变量
2024-07-10

优化策略:减少COUNT对数据库的压力

使用索引:在查询中使用索引可以大大减少数据库的查询时间,从而减少对数据库的压力。确保数据库表中涉及到COUNT的字段都有适当的索引。缓存查询结果:将COUNT的查询结果缓存起来,避免多次查询数据库造成冗余的性能开销。使用定时任务:定时任务可
优化策略:减少COUNT对数据库的压力
2024-08-11

Mysql性能优化:为什么你的count(*)这么慢?

导读在开发中一定会用到统计一张表的行数,比如一个交易系统,老板会让你每天生成一个报表,这些统计信息少不了 sql 中的count函数。但是随着记录越来越多,查询的速度会越来越慢,为什么会这样呢?Mysql内部到底是怎么处理的?今天这篇文章将从Mysql内部对于
Mysql性能优化:为什么你的count(*)这么慢?
2017-03-10

MySQL 8.0 对 limit 的优化技巧

从不同版本的MySQL发展轨迹来看MySQL的优化器越来越智能(比如大家期待已久的直方图特性),能更多的减少人为干预,提升执行计划的准确性,这篇文章主要介绍了MySQL 8.0 对 limit 的优化,需要的朋友可以参考下
2022-11-13

mysql对子查询的优化改写

《高性能mysql第三版》提到mysql会将in子查询改写成exists查询(书中基于的mysql版本是5.1.50和5.5) 但是在5.6之后,已经优化成使用半连接查询 首先要提的当然是臭名昭著的MySQL子查询问题,在MySQL5.5及之前的版本,所有
2017-04-10

CentOS系统下MySQL的优化技巧

本篇内容介绍了“CentOS系统下MySQL的优化技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!(1) 服务器硬件对MySQL性能的影响
2023-06-16

Linux下MySQL的备份策略优化

在Linux下进行MySQL备份时,可以采用以下策略进行优化:使用mysqldump命令进行备份:mysqldump是MySQL自带的备份工具,可以将数据库导出为SQL文件。可以定期使用mysqldump进行全量备份,保留最近几天或几周的备
Linux下MySQL的备份策略优化
2024-08-16

编程热搜

目录