MySQL中,如何定位慢查询?定位到的慢SQL如何分析?

news/2024/10/30 11:30:44/

目录

1. 慢查询发生的场景?

2. MySQL中,如何定位慢查询?

2.1 详细解释

3. 定位到的慢SQL如何分析?

3.1 详细说明



1. 慢查询发生的场景?

2. MySQL中,如何定位慢查询?

介绍一下当时产生问题的场景(我们当时的一个接口测试的时候非常的慢,压测的结果大概5秒钟)

1..我们系统中当时采用了运维工具(Skywalking),可以监测出所有接口的执行执行时间并排序。

2.在mysgl中开启了慢日志查询,我们设置的值就是2秒,一旦sgl执行超过2秒就会记录到日志中(调试阶段开启慢查询日志,生产阶段不开启)

2.1 详细解释

3. 定位到的慢SQL如何分析?

3.1 详细说明

explain 主要用来 SQL 分析,它主要的属性详解如下:

  • id:查询的执行顺序的标识符,值越大优先级越高。简单查询的 id 通常为 1,复杂查询(如包含子查询或 UNION)的 id 会有多个。
  • select_type重要):查询的类型,如 SIMPLE(简单查询)、PRIMARY(主查询)、SUBQUERY(子查询)等。
  • table:查询的数据表。
  • type重要):访问类型,如 ALL(全表扫描)、index(索引扫描)、range(范围扫描)等。一般来说,性能从好到差的顺序是:const > eq_ref > ref > range > index > ALL。
  • possible_keys:可能用到的索引。
  • key重要):实际用到的索引。
  • key_len:用到索引的长度。
  • ref:显示索引的哪一列被使用。
  • rows重要):估计要读取的行数,值越小越好。
  • filtered:显示查询条件过滤掉的行的百分比。一个高百分比表示查询条件的选择性好。
  • Extra重要):额外信息,如 Using index(表示使用覆盖索引)、Using where(表示使用 WHERE 条件进行过滤)、Using temporary(表示使用临时表)、Using filesort(表示需要额外的排序步骤)。

type 详解:

  • null:表示开发中没有使用到表,这个几乎不发生,无需关注
  • system:表示查询的表只有一行(系统表)。这是一个特殊的情况,不常见。
  • const:表示查询的表最多只有一行匹配结果。这通常发生在查询条件是主键唯一索引,并且是常量比较。
  • eq_ref:表示对于每个来自前一张表的行,MySQL 仅访问一次这个表。这通常发生在连接查询中使用主键或唯一索引的情况下。
  • ref:MySQL 使用非唯一索引扫描来查找行。查询条件使用的索引是非唯一的(如普通索引)。
  • range:表示 MySQL 会扫描表的一部分,而不是全部行。范围扫描通常出现在使用索引的范围查询中(如 BETWEEN><>=<=)。
  • index:表示 MySQL 扫描索引中的所有行,而不是表中的所有行。即使索引列的值覆盖查询,也需要扫描整个索引。
  • all(性能最差):表示 MySQL 需要扫描表中的所有行,即全表扫描。通常出现在没有索引的查询条件中。

http://www.ppmy.cn/news/1543089.html

相关文章

2024.10.29- Linux(CentOS7)笔记(1)

一、Linux文件系统的介绍 Linux的文件系统与Unix的文件系统类似&#xff0c;也是一个树形结构。 最基本的是根目录&#xff1a;/ 。相当于windows文件系统的盘符。 /&#xff1a; 根路径&#xff0c; 根路径下有以下文件夹 ​ /bin -> usr/bin : 存储的是用户级别的指令…

160W高效能!安森美半导体NCV8871异步升压控制器设计方案

近年直流电产品应用越来越广泛&#xff0c;一方面随著应用技术不断推陈出新&#xff0c;另一方面终端应用的功率需求越来越大&#xff0c;例如: 音讯放大器、直流无线吸尘器、直流工具机、车用电子产品等。这些直流电产品都需要一个稳定的直流电压输入&#xff0c;且可以供应其…

人工智能技术:塑造未来生活与工作的变革力量

人工智能技术&#xff1a;塑造未来生活与工作的变革力量 一、引言 在当今科技飞速发展的时代&#xff0c;人工智能技术如同一颗璀璨的新星&#xff0c;在各个领域绽放出耀眼的光芒&#xff0c;引领着一场前所未有的变革。从医疗领域的精准诊断到企业运营的智能优化&#xff0…

angular使用http实现get和post请求

说明&#xff1a; angular使用http实现get和post请求 提示&#xff1a;在运行本项目前&#xff0c;请先导入路由router&#xff0c;可以参考我上一篇文章。 效果图&#xff1a; step1:E:\projectgood\ajsix\untitled4\package.json “angular/cdk”: “^18.2.10”, “angula…

【计算机网络教程】课程 章节测试1 计算机网络概述

一. 单选题&#xff08;共16题&#xff09; 1 【单选题】以下关于TCP/IP参考模型缺点的描述中&#xff0c;错误的是&#xff08; &#xff09;。 A、在服务、接口与协议的区别上不很清楚 B、网络接口层本身并不是实际的一层 C、它不能区分数据链路和物理层 D、传输层对…

51单片机快速入门之 串行通信 2024/10/21

51单片机快速入门之 串行通信 并行通信: 好处:传输快 适合短距离通信弊端:占用大量io 接线形式为8对8 串行通信 异步通信: 数据一帧一帧传送,传输完一帧之后,可继续或者等待(等待时为高电平) 其帧细分为(图片来源) 起始位:数据帧开始,一定为 0 外部设备只有接受到 0 之后…

Python+Selenium+Pytest+POM自动化测试框架封装(完整版)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、测试框架简介 1&#xff09;测试框架的优点 代码复用率高&#xff0c;如果不使用框架的话&#xff0c;代码会显得很冗余。可以组装日志、报告、邮件等一些高…

第五课 LMDeploy 量化部署 LLM 实践

0.基础知识 0.1大模型部署 背景 模型部署的定义&#xff1a; 在软件工程中&#xff0c;部署通常指的是将开发完毕的软件投入使用的过程。在人工智能领域&#xff0c;模型部署是实现深度学习算法落地应用的关键步骤。简单来说&#xff0c;模型部署就是将训练好的深度学习模型在 …