MySQL 执行慢原因分析

news/2024/4/25 22:22:00/文章来源:https://blog.csdn.net/BBinChina/article/details/124489238

SQL执行慢不外乎以下原因:
1、查询语句设计不合理。简单的 SQL 语句执行效率高,复杂的 SQL 语句执行效率低。
2、索引处理不当,如忘记在 WHERE 后面加上索引,导致查询过程中无法使用索引来特别优化查询。
3、表没有做合理的分区。

在实践过程中,我们可以根据多变的情况进行逐步分析:

情况分析

在生产环境中,相同数据量情况下,有SQL偶尔执行慢即出现频率低,也有SQL每次执行都慢即出现频率高。

出现频率低情景

1、InnoDB脏页刷新
Innodb为了优化写效率,采用了内存缓冲及redo log(写磁盘)的方式,当内存页与磁盘页数据不一致时(脏页),mysql会进行刷盘(定时批量)。或者mysql dump之后,从redo log恢复最新数据。
redo log是有容量的,如果数据库操作频繁,redo log会写满,那么需要写到磁盘,而不能等到空闲的时候做刷盘了,这个时候必须停止其他操作,因此正在执行的操作就会执行得慢。

2、操作等待锁资源
当我们在update数据时,需要获取行锁,行锁为悲观锁。当行锁被其他事务获取时,当前事务需要等待,直到行锁被释放。

出现频率高情景

  • SQL执行没有走索引
    1、SQL执行时的where没有使用索引,进行全表查询,当数据量大时,执行效率低
    2、SQL执行时where里使用了索引,那么通过explain进行分析
    如果where条件中对索引字段进行运算操作或者函数操作,SQL执行时不会触发索引执行。

  • SQL的执行走索引
    1、通过explain分析,虽然走了索引,但类型为all,表明依然走的是全表查询
    场景有:
    使用了前缀模糊匹配 like,不能命中索引
    = 前的索引列上进行了表达式运算
    数据表中 phone 字段是字符串类型,而查询时使用了数字类型,会触发隐式类型转换,不会命中索引

2、根据索引查找的机制进行分析,从辅助索引查找到数据主键时,在通过聚簇索引找到行数据,如果索引不能有效的区分数据,比如像年龄,不能区分大部分数据时(年龄分布平均)
mysql会根据这个预测分析通过全表查询(遍历行数据)会比通过索引效率高(先通过辅助索引,再通过聚簇索引分析行数据)

3、单表数据量超过千万后,性能会出现下降(b+tree数据结构缺点)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75252.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌搜索技巧大全 | 谷歌高级搜索语法指令

谷歌搜索技巧是利用各种高级搜索语法或者搜索指令,让我们能够使用Google进行精确化的搜索,外贸找客户和学术文件查找都可以应用到这些搜索技巧。(大部分命令也适用百度搜索)。Google通过互联网收集数据,抓取有意义的信息,将其存储…

【知识图谱】架构-特点-缺点简介

架构物联网、云计算、人工智能等新一代信息技术的迅猛发展,带来了制造业的新一轮突破,推动着制造系统向智能化方向发展,驱动着未来制造模式的创新。其中数据和知识是实现制造业与新一代信息技术融合的基础,是实现智能制造的保障。…

C++杂谈(一)

前言 本系列也是慢更系列,主要收纳一些还不够单独成系列的C的杂项问题,或是一些与C有关,但不属于核心知识的一些旁系问题。 关于C与C的关系 「学C要先学C吗?」 「C和C是不是完全不同的两个语言?」 「这个语法是C的还…

Android 动画详解

Android动画的分类与使用学习Android必不可少的就是动画的使用了,在Android版本迭代的过程中,出现了很多动画框架,这里做一个总结。Android动画类型分类逐帧动画【Frame Animation】,即顺序播放事先准备的图片。补间动画【Tween A…

NSGA-Ⅲ源代码

NSGA-Ⅲ源代码如下,供大家学习和应用。该算法在梯级水电-火电的应用订阅专栏即可查看: 1、主函数 % % Copyright (c) 2016, Mostapha Kalami Heris & Yarpiz (www.yarpiz.com) % All rights reserved. Please read the "LICENSE" file…

前端经典react面试题及答案

为什么 React 元素有一个 $$typeof 属性 目的是为了防止 XSS 攻击。因为 Synbol 无法被序列化,所以 React 可以通过有没有 $$typeof 属性来断出当前的 element 对象是从数据库来的还是自己生成的。 如果没有 $$typeof 这个属性,react 会拒绝处理该元素。…

C++plog库,轻量级日志框架(日志库)

文章目录主要头文件及使用方法解释plog/Log.hplog/Appenders/ColorConsoleAppender.hplog/Appenders/RollingFileAppender.hplog/Formatters/TxtFormatter.h三个核心概念Formatter:格式化程序格式化程序举例TxtFormatterJsonFormatterCsvFormatterSyslogFormatterAp…

真的,MyBatis 核心源码入门看这个就够了(四)

4 SQL执行 再次回到demo的示例代码, org.junit.jupiter.api.Testvoid queryBySn() throws IOException {//1 读取配置文件InputStream in Resources.getResourceAsStream("mybatis-config.xml");//2 加载解析配置文件并获取SqlSessionFactory对象SqlSes…

华为OD机试模拟题 用 C++ 实现 - 寻找连续区间(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明寻找连续区间题目输入输出示例一输入输出说明示例二输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率…

华为OD机试题,用 Java 解【求解连续数列】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

大数据算法自检

1 大数据亚线性空间算法 1.1 流模型的计数问题 问题定义?用什么算法?算法步骤?(提示:三层递进) 切比雪夫不等式?怎么证明?期望,方差,空间复杂度? 极其有限的空间存储极…

数据结构与算法(六):图结构

图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关。图是一种多对多的数据结构。 一、基本概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成&#x…

每日分享(免登录积分商城系统 动力商城 兑换商城源码)

​demo软件园每日更新资源,请看到最后就能获取你想要的: 1.Python教程2022:100天从新手到大师 完整版 Python 100天从新手到大师是一个Python入门教程,Python从入门到精通,专门为热爱python的新手量身定做的学习计划,100天速成pyt…

OOM的俩种情况---主动kill/被动kill

出现OOM, 有两种处理方式:1. 主动Kill; 2. 被动Kill 例:HBase Region Server OOM定位问题复盘 现象 在HBase资源隔离项目中,对测试集群进行压测时,发现region server会出现崩溃的情况,单机请求量从>200到~50每秒都…

【Git使用教程】从入门到学废

文章目录1. 基础git流程图常用命令基本配置快捷指令解决GitBash乱码获取本地仓库基础操作指令查看修改的状态(status)添加工作区到暂存区(add)提交暂存区到本地仓库(commit)查看提交日志(log)版本回退添加文件至忽略列表总结2. 分支查看本地分支创建本地…

程序员多赚20k的接私活必备网站

为什么都是程序员,就有人能多赚20k?那是因为副业搞得那么溜啊! 今天分享一些程序员搞钱必备的接私活网站,让更多程序员们在工作之余能有另外一份收入。 1.程序员客栈:http://proginn.com 专为程序员服务的软件外包对…

超级品牌符号怎么设计?大咖有方法

怎么设计超级LOGO图标?有方法! LOGO设计大趋势:卡通化、拟人化 抽象符号已经泛滥 但卡通形象也已经泛滥 趣讲大白话:设计容易出名难 【安志强趣讲信息科技89期】 ******************************* 别以为设计一个卡通就牛X闪闪 比…

React Native使用echart——wrn-echarts

这里写自定义目录标题前言Tips详细使用过程如下1、开发环境搭建2、准备RN工程3、build App包4、 安装相关依赖5、试用Skia模式6、试用Svg模式7、封装Chart组件8、多个图表使用总结前言 平时写图表相关需求,用得最多的图表库就是echarts。echarts在web端的表现已经相…

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测

机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测 作者:AOAIYI 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞…

毕业设计 基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信

基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STC89C52单片机核心系统电路设计2.2 dht11温湿度检测电路设计2.3 NRF24L01无线通信电路设计3、部分代码展示3.1 NRF24L01初始化3.2 NRF24L01的SPI写时序3.…