SQL慢查询学习篇

https://www.cnblogs.com/isyues/p/17733015.html

1. 对扫到的SQL慢查询语句执行 explain

explain select task_id, channel, count(task_id) as count from tablename 
where send_time > "2024-05-10 16:13:59" and send_time <= "2024-05-14 16:13:59" and task_status = 3 group by task_id

2. explain命令是什么东西?

explain 是MySql提供的SQL语句查询性能的工具,是我们优化SQL的重要指标手段,要看懂explain返回的结果集就尤为重要

3. explain命令返回列解读

+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+--------------------------------------------+
| id | select_type | table   | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                                      |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+--------------------------------------------+
|  1 | PRIMARY     | SC      | NULL       | ALL  | NULL          | NULL | NULL    | NULL |   18 |    10.00 | Using where                                |
|  1 | PRIMARY     | Student | NULL       | ALL  | NULL          | NULL | NULL    | NULL |   12 |    10.00 | Using where; Using join buffer (hash join) |
|  2 | SUBQUERY    | Teacher | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    3 |    33.33 | Using where                                |
|  2 | SUBQUERY    | Course  | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    3 |    33.33 | Using where; Using join buffer (hash join) |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+--------------------------------------------+

3.1 Extra

在执行查询语句时额外的详细信息

  • Using index:表示MySQL将使用覆盖索引,这发生在对表的请求列都是同一索引的部分的时候,返回的列数据只使用了索引中的信息,而没有再去访问表中的行记录。是性能高的表现。
  • Using index condition:在5.6版本后加入的新特性索引下推(Index Condition Pushdown,ICP),在索引遍历过程中,对索引中包含的字段先做判断(即使该字段没有使用到索引),直接过滤掉不满足条件的记录,减少回表次数。
  • Using where:意味着MySQL服务器将在存储引擎检索行后再进行过滤。就是先通过索引读取整行数据,再按 WHRER条件进行检查,符合就留下,不符合就丢弃。查询的列未被索引覆盖。
  • Using temporary:MySQL需要创建一张临时表来中间结果并进一步处理,比如union、group by、distinct等,出现这种情况一般是要进行优化的,首先是想到用索引来优化。
  • Using filesort:MySQL会对结果使用一个外部索引排序,而不是按索引次序从表里读取行,即filesort(文件排序)。此时mysql会根据联接类型浏览所有符合条件的记录,并保存排序关键字和行指针,然后排序关键字并按顺序检索行信息。这种情况下一般也是要考虑使用索引来优化的。filesort有两种,一种是内存排序,一种是磁盘排序,无法得知。
  • Distinct: 一旦MySQL找到了与行相联合匹配的行,就不再搜索了,常见于关联查询。
  • No tables used:Query语句中使用from dual 或不含任何from子句。
  • Using join buffer:使用了连接缓存,join语句用到了缓冲区。

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

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

相关文章

LeetCode 235. 二叉搜索树的最近公共祖先

LeetCode 235. 二叉搜索树的最近公共祖先 1、题目 题目链接&#xff1a;235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表…

【C语言】指针(二)

目录 一、传值调用和传址调用 二、数组名的理解 三、通过指针访问数组 四、一维数组传参的本质 五、指针数组 六、指针数组模拟实现二维数组 一、传值调用和传址调用 指针可以用在哪里呢&#xff1f;我们看下面一段代码&#xff1a; #include <stdio.h>void Swap(i…

ue引擎游戏开发笔记(41)——行为树的建立(2)--丰富ai行为:巡逻后返回原处

1.需求分析&#xff1a; 就敌人ai而言&#xff0c;追踪到敌人有可能丢失目标&#xff0c;丢失目标后应该能返回原来位置&#xff0c;实现这一功能。 2.操作实现&#xff1a; 1.思路&#xff1a;利用clear value函数&#xff0c;禁用掉当前的追踪功能&#xff0c;执行之后的返…

JUnit5参数化用例(三)

JUnit5枚举参数的参数化&#xff1a; 使用枚举类作为测试数据枚举参数参数化注解EnumSource必须与ParameterizedTest结合使用 枚举参数化注解 -简单使用&#xff1a; 需要添加EnumSource注解测试方法传入枚举类作为参数 在执行前&#xff0c;我们需了解enum枚举的使用方式&…

分布式计算、并行计算、网格计算、边缘计算

分布式计算 分布式计算是一种计算方法&#xff0c;它将一个大型的计算任务分解成多个子任务&#xff0c;并将这些子任务分布在网络上的多台计算机&#xff08;节点&#xff09;上同时执行。这些节点通过通信网络协同工作&#xff0c;共同完成任务。每个节点可以独立处理自己的…

3D Tiles资源大全

本文汇总整理3D Tiles相关的各种资源&#xff0c;包括查看器、生成器、示例数据集、教程、演示等。 1、3D Tiles特色演示 注意&#xff1a;这些演示是基于 CesiumJS 1.87.1 Release 发布的&#xff0c;其中包括对 3D Tiles Next 扩展的实验性支持。这些演示中显示的大多数功能现…

Java入门基础学习笔记26——break,continue

跳转关键字&#xff1a; break&#xff1a; 跳出并结束当前所在循环的执行。 continue&#xff1a; 用于跳出当前循环中的当次执行&#xff0c;直接进入循环中的下一次执行。 package cn.ensource.loop;public class BreakContinueDemo8 {public static void main(String[] a…

在Ubuntu22.04搭建xfce远程桌面

由于Ubuntu22.04云服务器&#xff08;带GPU&#xff09;只开放部分端口&#xff0c;某些服务&#xff08;如nacos&#xff09;有Web前端需要访问&#xff0c;但是相应的端口并没有开放&#xff0c;只有SSH端口可以使用。于是&#xff0c;就在Ubuntu22.04上安装xfce桌面环境&…

centos无法联网解决方案(9步完成

1.打开终端&#xff0c;输入 su - root 进入到管理员模式&#xff08;-的前后都有空格哈&#xff09; 切换后&#xff0c;显示的就是root... 2.. &#xff0c;输入命令ip addr 2. 切换当前目录 cd /etc/sysconfig/network-scripts/ 3.输入命令&#xff0c;打开文件 vi /etc…

C语言 | Leetcode C语言题解之第92题反转链表II

题目&#xff1a; 题解&#xff1a; struct ListNode *reverseBetween(struct ListNode *head, int left, int right) {// 因为头节点有可能发生变化&#xff0c;使用虚拟头节点可以避免复杂的分类讨论struct ListNode *dummyNode malloc(sizeof(struct ListNode));dummyNode…

meshlab: pymeshlab沿着椭圆赤道投影展开当前网格的几何图形并保存(geometric cylindrical unwrapping)

一、关于环境 请参考&#xff1a;pymeshlab遍历文件夹中模型、缩放并导出指定格式-CSDN博客 二、关于代码 本文所给出代码仅为参考&#xff0c;禁止转载和引用&#xff0c;仅供个人学习。 本文所给出的例子是https://download.csdn.net/download/weixin_42605076/89233917中的…

月薪3万,沉迷“薅羊毛”

在网购江湖中&#xff0c;蟹老板是一位拥有十年经验的资深“羊毛党”。 他不仅是位精明的数学家&#xff0c;更是一位高效的“生产线”工人&#xff0c;专注于各大网购平台的优惠机制。每逢618大促&#xff0c;他总能凭借超凡的洞察力和手速&#xff0c;轻松斩获丰厚的“羊毛”…