EXPLAIN使用分析

系列文章目录


文章目录

  • 系列文章目录
  • 一、type说明
  • 二、MySQL中使用Show Profile
    • 1.查看当前profiling配置
    • 2.在会话级别修改profiling配置
    • 3.查看profile记录
    • 4.要深入查看某条查询执行时间的分布


一、type说明

在这里插入图片描述
我们只需要注意一个最重要的type 的信息很明显的提现是否用到索引:
type结果值从好到坏依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

all:全表扫描

index:另一种形式的全表扫描,只不过他的扫描方式是按照索引的顺序

range:有范围的索引扫描,相对于index的全表扫描,他有范围限制,因此要优于index

ref: 查找条件列使用了索引而且不为主键和unique。其实,意思就是虽然使用了索引,但该索引列的值并不唯一,有重复。这样即使使用索引快速查找到了第一条数据,仍然不能停止,要进行目标值附近的小范围扫描。但它的好处是它并不需要扫全表,因为索引是有序的,即便有重复值,也是在一个非常小的范围内扫描。

const:通常情况下,如果将一个主键放置到where后面作为条件查询,mysql优化器就能把这次查询优化转化为一个常量。至于如何转化以及何时转化,这个取决于优化器

一般来说,得保证查询至少达到range级别,最好能达到ref,type出现index和all时,表示走的是全表扫描没有走索引,效率低下,这时需要对sql进行调优。

当extra出现Using filesor或Using temproary时,表示无法使用索引,必须尽快做优化。

possible_keys:sql所用到的索引

key:显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL

rows: 显示MySQL认为它执行查询时必须检查的行数。

这里可以参考之前写的一篇:用MySQL 执行计划分析 DATE_FORMAT 函数对索引的影响

二、MySQL中使用Show Profile

Show profile 默认是禁用的,用处是记录在服务器中运行的查询耗费的时间和其他一些查询执行状态变更相关的数据。

1.查看当前profiling配置

show variables like ‘profiling%’

2.在会话级别修改profiling配置

set profiling =1

我在执行这个语句是,返回给我

0 row(s) affected, 1 warning(s): 1287 ‘@@profiling’ is deprecated and will be removed in a future release.

看这个提示,似乎后期的版本profiling会有变动

3.查看profile记录

show profiles

当一条查询提交给服务器时,此工具会记录剖析信息到一张临时表,并为每个查询赋予一个从1开始的整数标识符。

4.要深入查看某条查询执行时间的分布

show profile for query <整数标识符>

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

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

相关文章

kafka线上问题优化

如何防止消息丢失 生产者&#xff1a; 使用同步发送把ack设成1或者all&#xff08;非0&#xff0c;0可能会出现消息丢失的情况&#xff09;&#xff0c;并且设置同步的分区数>2 消费者&#xff1a;把自动提交改成手动提交 如何防止重复消费 在防止消息丢失的方案中&#…

leetcode 力扣刷题 数组交集(数组、set、map都可实现哈希表)

数组交集 349. 两个数组的交集排序&#xff0b;双指针数组实现哈希表unordered_setunordered_map 350. 两个数组的交集Ⅱ排序 双指针数组实现哈希表unordered_map 349. 两个数组的交集 题目链接&#xff1a;349. 两个数组的交集 题目内容如下&#xff0c;理解题意&#xff1a…

梯度爆炸和梯度消失的原因以及解决方法

文章目录 1、原因&#xff1a;2、解决方法 1、原因&#xff1a; 梯度消失和梯度爆炸的根本原因是因为在反向传播过程中&#xff0c;使用链式法则计算时&#xff0c;累积相乘效应导致梯度过大或者过小主要原因有&#xff1a; 1&#xff09;激活函数&#xff1a;例如sigmoid或者…

聊聊火车的发展

目录 1.火车的概念 2.火车的发展历史 3.火车对战争的影响 4.火车对人们出行造成的影响 1.火车的概念 火车是一种由机械动力驱动的陆上交通工具&#xff0c;通常用来运输人员和货物。它由一列或多列的连接在一起的车厢组成&#xff0c;有轨道作为其行驶的基础&#xff0c;并通…

重建与突破,探讨全链游戏的现在与未来

全链游戏&#xff08;On-Chain Game&#xff09;是指将游戏内资产通过虚拟货币或 NFT 形式记录上链的游戏类型。除此以外&#xff0c;游戏的状态存储、计算与执行等皆被部署在链上&#xff0c;目的是为用户打造沉浸式、全方位的游戏体验&#xff0c;超越传统游戏玩家被动控制的…

mysql面试

基础篇 通用语法及分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQL: 数据查询语言&#xff0c;用来查询数据库中表的记录DCL: 数据控制语言&#xff0c;用…

php正则替换文章的图片

要使用正则表达式替换文章中的图片链接&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 获取文章内容&#xff1a;首先&#xff0c;你需要获取包含图片链接的文章内容。你可以从文件中读取文章&#xff0c;或者从数据库中检索文章内容。 2. 使用正则表达式匹配图片链接…

JAVA编程学习笔记

常用代码、特定函数、复杂概念、特定功能……在学习编程的过程中你会记录下哪些内容&#xff1f;快来分享你的笔记&#xff0c;一起切磋进步吧&#xff01; 一、常用代码 在java编程中常用需要储备的就是工具类。包括封装的时间工具类。http工具类&#xff0c;加解密工具类&am…

day17 | 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

目录&#xff1a; 解题及思路学习 110.平衡二叉树 https://leetcode.cn/problems/balanced-binary-tree/ 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差…

Linux学习之firewallD

systemctl status firewalld.service查看一下firewalld服务的状态&#xff0c;发现状态是inactive (dead)。 systemctl start firewalld.service启动firewalld&#xff0c;systemctl status firewalld.service查看一下firewalld服务的状态&#xff0c;发现状态是active (runni…

okcc呼叫系统导入呼叫名单/客户资料的数量上限,okcc通话声音小有哪几种处理办法?

系统导入呼叫名单/客户资料的数量上限 呼叫名单一次最多十万 客户资料一次最多五万 通话声音小有哪几种处理办法&#xff1f; 1、IP话机&#xff1a;通过话机上的音量调节按钮来进行调节。 2、模拟话机&#xff1a;修改语音网关上的增益来实现。 “ 往IP增益”表示电话呼入…

stable diffusion 运行时报错: returned non-zero exit status 1.

运行sh run.sh安装stable diffusion时报错&#xff1a;ImportError: cannot import name builder from google.protobuf.internal (stable-diffusion-webui/venv/lib/python3.8/site-packages/google/protobuf/internal/__init__.py) 原因&#xff1a;python版本过低&#xff0…

ubuntu16.04制作本地apt源离线安装

一、首先在有外网的服务器安装需要安装的软件&#xff0c;打包deb软件。 cd /var/cache/apt zip -r archives.zip archives sz archives.zip 二、在无外网服务器上传deb包&#xff0c;并配置apt源。 1、上传deb包安装lrzsz、unzip 用ftp软件连接无外网服务器协议选择sftp…

股票交易c接口包含哪些调用函数?

股票交易的C接口中可能包含多个调用函数&#xff0c;具体的调用函数取决于所使用的接口规范和交易所的要求。接下来看看下面是一些可能常见的股票交易C接口调用函数的示例&#xff1a; 1. 连接函数&#xff08;Connect&#xff09;&#xff1a;用于与交易所建立网络连接。 2.…

CSS(JavaEE初阶系列14)

目录 前言&#xff1a; 1.CSS是什么 1.1CSS基本语法 2.引入样式 2.1内部样式表 2.2行内样式表 2.3外部样式 3.选择器 3.1选择器的种类 3.1.1基础选择器 3.1.2复合选择器 4.常用元素属性 4.1字体属性 4.2文本属性 4.3背景属性 4.4圆角矩形 4.5元素的显示模式 4…

​LeetCode解法汇总2682. 找出转圈游戏输家

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; n 个朋友…

【Leetcode】84.柱状图中最大的矩形(Hard)

一、题目 1、题目描述 给定 n n n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例1: 输入:heights = [2,1,5,6,2,3] 输出:10 解释:最大的矩形为图中红色区域,面积为 10示例2:…

学习Vue:Vue Router的集成与基本配置

在Vue.js中&#xff0c;路由与导航是构建单页应用程序&#xff08;SPA&#xff09;的关键概念。Vue Router是Vue.js官方提供的路由管理库&#xff0c;它允许您轻松地实现页面之间的切换、嵌套路由和参数传递。在本文中&#xff0c;我们将深入了解Vue Router的集成和基本配置。 …

Stephen Wolfram:那么…ChatGPT 在做什么,为什么它有效呢?

So … What Is ChatGPT Doing, and Why Does It Work? 那么…ChatGPT在做什么&#xff0c;为什么它有效呢&#xff1f; The basic concept of ChatGPT is at some level rather simple. Start from a huge sample of human-created text from the web, books, etc. Then train…

IDA远程调试真机app

IDA远程调试真机app 第一步&#xff1a;启动 android_server&#xff0c;并修改端口 # 启动android_server ./android_server -p31928第二步&#xff1a;端口转发、挂起程序 # 端口转发adb forward tcp:31928 tcp:31928# 挂起程序 adb shell am start -D -n com.qianyu.antid…