SQL优化--如何分析优化呢?

news2024/11/28 3:39:56

目录

一个SQL语句执行很慢, 如何分析?

​编辑

重要属性

possible_key 

key

key_len

Extra

type

面试回答

框架

范例


例:

上面三种查询我们都可以通过执行计划找到查询慢的原因,并且提供解决方案

比如聚合查询可以新增临时表,多表查询可以试着优化SQL语句的结构,数据量过大可以添加索引

一个SQL语句执行很慢, 如何分析?

可以采用EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息

直接在select语句之前加上关键字 explain / desc

EXPLAIN   SELECT   字段列表   FROM   表名   WHERE  条件 ;

重要属性

possible_key 

当前sql可能会使用到的索引

key

当前sql实际命中的索引

key_len

索引占用的大小

Extra

额外的优化建议

Extra

含义

Using where; Using Index

查找使用了索引,需要的数据都在索引列中能找到,不需要回表查询数据

Using index condition

查找使用了索引,但是需要回表查询数据

type

这条sql的连接的类型

性能由好到差为NULL、system、const、eq_ref、ref、range、 index、all

 null:没有用到系统中的表

system:查询系统中的表或者是MySQL内置的表

const:根据主键查询

eq_ref:主键索引查询或唯一索引查询

ref:索引查询

range:范围查询

index:索引树扫描

all:全盘扫描

面试回答

框架

可以采用MySQL自带的分析工具 EXPLAIN

通过key和key_len检查是否命中了索引(索引本身存在是否有失效的情况)

通过type字段查看sql是否有进一步的优化空间,是否存在全索引扫描或全盘扫描

通过extra建议判断,是否出现了回表的情况,如果出现了,可以尝试添加索引或修改返回字段来修复

范例

面试官:那这个SQL语句执行很慢, 如何分析呢?

候选人:如果一条sql执行很慢的话,我们通常会使用mysql自动的执行计划 explain来去查看这条sql的执行情况,比如在这里面可以通过key和key_len检 查是否命中了索引,如果本身已经添加了索引,也可以判断索引是否有失效 的情况,

第二个,可以通过type字段查看sql是否有进一步的优化空间,是否 存在全索引扫描或全盘扫描,第三个可以通过extra建议来判断,是否出现了 回表的情况,如果出现了,可以尝试添加索引或修改返回字段来修复

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

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

相关文章

【Leetcode -563.二叉树的坡度 - Nowcoder -KY11.二叉树遍历】

Leetcode Leetcode -563.二叉树的坡度c Leetcode -563.二叉树的坡度 题目:给你一个二叉树的根节点 root ,计算并返回 整个树 的坡度 。 一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树…

leetcode数据库题第五弹

leetcode数据库题第五弹 1141. 查询近30天活跃用户数1148. 文章浏览 I1158. 市场分析 I1164. 指定日期的产品价格1174. 即时食物配送 II1179. 重新格式化部门表1193. 每月交易 I1204. 最后一个能进入电梯的人1211. 查询结果的质量和占比1251. 平均售价小结 1141. 查询近30天活跃…

chatgpt赋能python:Python打开文件目录:入门指南

Python打开文件目录:入门指南 打开文件目录是编程中常见的操作之一。Python 作为一种优秀的脚本语言,提供了众多的实用方法来操作文件系统。在本文中,我们将介绍如何使用 Python 打开文件目录,同时提供一些对 SEO 优化有帮助的技…

NodeJS 生成APIDOC⑩①

文章目录 ✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘前言API 文档生成工具 APIDOC特点 APIDOC使用步骤0、 运行命令1、 安装插件3、 配置演示4、 ApidocJson配置文件5、效果图 总结 ✨文章有误请指正&#x…

Storm forming 风雨欲来 | 经济学人20230325版社论高质量双语精翻

本期精翻为2023年3月25日《经济学人》周报封面文章:《风雨欲来》(Storm forming)。 Storm forming 风雨欲来 As video games grow, they are eating the media 随着电子游戏的发展,它们正在蚕食媒体 The games business has lesso…

计算机网络概论

计算机网络概论 组成 客户端:就像蟹堡王的顾客一样。服务端:类似于蟹堡王的分店。路由器:扮演着转发分店的角色。网络协议:像转发表格一样帮助数据在网络中传输。 计算机网络基础 网络组成部分 主机:客户端和服务端…

AVL树原理以及插入代码讲解(插入操作画图~细节)

原理 AVL 树是一种平衡搜索二叉树,得名于其发明者的名字( Adelson-Velskii 以及 Landis)。(可见名字长的好处,命名都能多占一个字母出来)。在搜索树的前提下平衡搜索二叉树还定义如下: 左右子…

JVM知识点梳理

什么是JVM? JVM是java虚拟机的缩写 ,也是java程式可以实现跨平台的关键。 JVM部分需要知道什么东西? JVM的结构和功能、参数配置、GC回收机制、GC回收器极其优缺点。 JVM结构(栈,程序计数器,方法区&#xf…

0009-TIPS-SLAB入门与观察

极简,但是能快速上手 slub算法 这篇文章简洁直观,推荐 linux 内核 内存管理 slub算法 (一) 原理 感受slub堆漏洞 需要下载 https://github.com/De4dCr0w/green-dill ,使用其中的测试程序做实验 UAF 如果看完上面链…

F407/103启动文件and启动过程

STM32 启动文件简介 STM32 启动文件由 ST 官方提供,在官方的固件包里。 startup_stm32f40_41xxx.s 启动文件由汇编编写,是系统上电复位后第一个执行的程序。 启动文件主要做了以下工作: 1 、初始化堆栈指针 SP _initial_sp 2 、初始…

SSM面试题

文章目录 一、Spring1.1 配置一个bean的方式?注解/xml1.2 spring 自动装配 bean 有哪些方式?1.3 spring 常用的注入方式有哪些?1.4 Component和Bean的区别?1.5 spring 事务实现方式有哪些?1.6 spring事务的传播机制?1.7 spring 的事务隔离? 二、SpringMVC2.1 SpringlIvc…

阿里云在国内市场占有率怎么样?

阿里云在国内市场占有率怎么样?   阿里云在国内市场占有率分析   随着互联网的飞速发展,越来越多的企业和个人开始利用云计算服务来满足各种业务需求。作为中国领先的云服务提供商,阿里云自成立以来就受到了广泛关注。本文旨在分析阿里云…

cmake入门(2)

cmake 教程2 demo cmake_minimum_required(VERSION 3.10) project(Tutorial)set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True)add_executable(Tutorial tutorial.cxx)基础 cmake_minimum_required cmake的版本要求 project 项目的名字,同时会生…

ad18学习笔记五:统计焊盘数量(board information)

AD18之后,Altium Designer改动比较大。下面将介绍AD19如何统计焊盘(PAD数量)与SMT贴片数量与插件数量 1: PCB 空白处 -> F11 -> Properties 选项卡 -> Board Information -> Pads 2: Pads 包括 通孔焊盘和贴片焊盘 Vias 包括过孔…

22.小波神经网络时间序列预测交通流量(附matlab程序)

1.简述 学习目标:小波神经网络时间序列预测交通流量 WNN(小波神经网络):是在误差反传神经网络拓扑结构的基础上发展而来的网络,与神经网络的结构具有一定的相似.在小波神经网络中,当整体信号…

第十三章 csv模块

1. csv模块介绍 介绍csv 模块前,需要先了解csv 文件(.csv 文件格式),csv 文件中的每行代表电子表格中的一行,并用逗号分隔该行中的单元格。 csv 文件可以使用记事本打开,可以使用Excel 另存为.csv 文件格…

docker内访问tdengine服务

踩坑记 springboot项目使用docker部署。由于tdengine原生连接方式需要安装客户端,第一想法是宿主机装好客户端,然后映射驱动到容器内部,网上找的教程也基本是这种思路。尝试了一天失败了。 错误1:libjemalloc.so.2 file: No such file or d…

docker安装下载tomcat一站式搞定并设置挂载卷

阿丹: 之前在使用nginx部署搭建vue项目的时候没有出docker配置nginx的配置文档(因为之前使用的是腾讯云现成的nginx服务器),今天配置安装一下tomcat和nginx在docker里面的安装。 在docker中安装配置tomcat 操作解读:…

服务器中间件

文章目录 一、tomcat二、 nginx2.1 代理问题2.2 负载均衡问题2.3 资源优化2.4 Nginx处理2.5 Nginx的特点:2.6 Nginx的安装2.7 Nginx的配置文件2.8 Nginx的反向代理2.9 反向代理:2.10 基于Nginx实现反向代理2.11 关于Nginx的location路径映射2.12 负载均衡…

【实战项目】利用mmdetection识别卫星遥感影像上的电线杆塔

前言 这次项目算是对openmmlab AI实战营第二期的一个实验证明,虽然这几天学习的比较粗糙,但也算是入门了mmdetection。 这个工具就像python一样,openmmlab已经将入门门槛做的很低了,但如果想精进、熟练甚至做真正的调参侠&#xf…