Mysql执行计划(下)

news2024/11/14 16:58:46

1、执行计划概念

执行计划是什么:使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。

作用:分析你的查询语句或是表结构的性能瓶颈

语法:Explain + SQL语句

执行计划输出内容介绍:表的读取顺序、数据读取操作的操作类型、哪些索引可以使用、哪些索引被实际使用、表之间的引用、每张表有多少行被优化器查询。

执行计划包含的信息:

2、执行计划各字段

2.5 执行计划-possible_keys

possible_keys:可能使用的key索引。

Key:实际使用的索引。如果为NULL,则表示没有使用索引。

查询中若使用了覆盖索引,则该索引和查询的select字段重叠。

2.6 执行计划-key_len

  • 表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。在不损失精确性的情况下,长度越短越好。
  • key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的。
  • 根据key_len这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段是否都被查询用到。
  • char和varchar跟字符编码也有密切的联系,latin1占用1个字节,gbk占用2个字节,utf8占用3个字节。(不同字符编码占用的存储空间不同)

字符类型

字符类型-索引字段为char类型+不可为Null时:

索引字段为varchar类型+不可为Null时:

varchar(n)变长字段+不允许Null=n*(utf8=3,gbk=2,latin1=1)+2

索引字段为varchar类型+允许为Null时:

varchar(n)变长字段+允许Null=n*(utf8=3,gbk=2,latin1=1)+1(NULL)+2

数值类型

日期和时间:

key_len 总结:

  • 而NULL都需要1个字节的额外空间,所以索引字段最好不要为NULL,因为NULL让统计更加复杂并且需要额外的存储空间。
  • 复合索引有最左前缀的特性,如果复合索引能全部使用上,则是复合索引字段的索引长度之和,这也可以用来判定复合索引是否部分使用,还是全部使用。
  • 变长字段需要额外的2个字节(VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节),所以VARCAHR索引长度计算时候要加2),固定长度字段不需要额外的字节。

2.7执行计划-ref

Ref:显示索引的哪一列被使用了,如果可能的话,是一个常量。哪些列或常量被用于查找索引列上的值。

由key_len可知t1表的idx_col1_col2被充分使用,col1匹配t2表的col1,col2匹配了一个常量,即 'ac'。

2.8执行计划-rows

根据表统计信息及索引选用情况,大致估算出找到所需的记录所需要读取的行数。

2.9执行计划-Extra

Extra:包含不适合在其他列中显示但十分重要的额外信息

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

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

相关文章

华为毕昇打印机:智能生态引领打印机市场新变革

在全球打印机市场中,华为作为通信和消费电子领域的领军企业,其新品打印机的发布无疑为行业带来了新的活力。华为毕昇打印机的推出,预示着华为将以其独特的智能生态理念,重塑打印机行业的格局。 首先,华为毕昇打印机的…

【书生大模型实战营第三期 | 基础岛第3关-浦语提示词工程实践】

学习心得:浦语提示词工程实践 摘要 本文是对《浦语提示词工程实践》课程的学习心得,旨在总结课程的核心内容,包括环境配置、模型部署、提示工程的基本原则和LangGPT结构化提示词的使用方法。通过学习,我深刻理解了在人工智能领域…

Linux系统之ncdu命令的基本使用

Linux系统之ncdu命令的基本使用 一、ncdu命令命令介绍1.1 ncdu简介1.2 ncdu特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统镜像源3.4 更新软件列表 四、安装ncdu工具4.1 安装ncdu软件4.2 n…

Stable Diffusion 使用详解(7)---AI 摄影

目录 背景 底模的选择 例子 majicMix GirlFriendMix( Lora) 对比效果 LEOSAMs MoonFilm ADetailer 使用 说明 例子 问题 处理方式 效果 背景 魔法师使用魔法作的画有时候太过完美,以至于有点脱离真实摄影的感觉,我们…

SQL注入之oracle,mongodDB注入

简要学习各种数据库的注入特点 access与其他数据库的区别 1.access网站的数据在网站目录下,以mdb形式存储。每个网站之间的数据库相互独立。这在一定程度上避免了跨库注入! 2.access功能比较少,比如没有文件读写,没有记录信息表i…

优化版轻量级自适应商城卡密发卡平台源码 全开源、商业友好 重塑高效发卡体验

引领数字商品交易新风尚,我们自豪地推出这款精心优化后的轻量级自适应商城卡密发卡平台源码。这款源码不仅继承了原版的精髓,更通过深度二次开发,彻底修复了原有bug,并剔除了所有冗余文件与代码,确保系统运行更加流畅&…

【强化学习的数学原理】课程笔记--6(Actor-Critic方法)

目录 Actor-Critic 方法QAC 算法Advantage Actor-Critic 算法Baseline invariance Off-policy Actor-Critic重要性采样 Deterministic Policy Gradient (DPG) 系列笔记: 【强化学习的数学原理】课程笔记–1(基本概念,贝尔曼公式) …

java学习day016

API 1.Number 数字格式化 : # 任意数字,0-9任意单个数字 , 千分位 . 小数点 0 补位 //四位小数 DecimalFormat df new DecimalFormat("###,###.####"); System.out.println(df.format(1234567.312));//1,234,567.312 //四位小数,不够补0 df new Deci…

CPU内部结构窥探·「7」--ARMv8架构中的缓存机制

浅析ARMv8架构中的缓存机制 在现代计算机体系结构中,缓存(Cache)是提高系统性能的关键组件之一。对于ARMv8架构来说,缓存的设计和管理至关重要。本文将详细介绍ARMv8架构中的缓存机制,包括其结构、工作原理、缓存一致…

高精度加法c++

题目描述 计算ab的值,a,b皆为不超过240位的正整数。 输入 两个正整数,每行一个 输出 一个数,代表两个整数的和 样例输入 111111111111111111111111111111111111 222222222222222222222222222222222222 样例输出 3333333333333333333…

渗透--ubuntuan安装nginx、php部署 -- sql注入

ubuntuan安装nginx以及php部署 ​ 1.安装依赖包 方法一: rootzbn-virtual-machine:~# apt-get install gcc libpcre3 libpcre3-dev zliblg zliblg-dev openssl libssl-dev方法二: rootzbn:/# apt install gcc rootzbn:/# apt install libpcre3 libpcre3…

2017-架构师案例(九)

某软件企业受该省教育部门委托建设高校数字化教育教学资源共享平台,实现以众筹众创的方式组织省内普通高校联合开展教育教学资源内容建设,实现全省优质教学资源整合和共享。该资源共享平台的主要功能模块包括: (1)统一身份认证模块:提供统一的认证入口&…

微信小程序--详情实现日期选择期(年月日)

案例&#xff1a; html: <view class"huanhang"><view class"fontBold">发起时间&#xff1a;</view><view class"fontBold"> <picker class"getBusTime" mode"date" data-namesa"staDa…

aop时什么,用时统计怎么开发

spring aop,作用&#xff1a;可以对service层代码进行监听&#xff0c;统计每个方法用时 aop是什么&#xff1a;面向切面编程&#xff08;aop开发出来的代码&#xff09; 用在哪里&#xff1a;&#xff08;压测/提效&#xff09; 1.controller层方法用时不用统计,核心都在服务…

Vue+Vite+Element Plus基础操作

Vue.js 是一个流行的前端框架&#xff0c;‌而 Vite 是一个快速构建前端应用的新型开发服务器和构建工具&#xff0c;‌两者结合可以显著提升开发效率和体验。‌ Vue.js 是一个用于构建用户界面的渐进式框架&#xff0c;‌它易于上手且功能强大。‌Vue 的核心库只关注视图层&a…

前端构建工具|vite快速入门

认识vite vite组成部分 Vite是一种新型前端构建工具&#xff0c;能够显著提升前端开发体验。它主要由两部分组成&#xff1a; 一个开发服务器&#xff0c;它基于 原生 ES 模块 提供了 丰富的内建功能&#xff0c;如速度快到惊人的 模块热更新&#xff08;HMR&#xff09;。一…

DERPNSTINK: 1-打靶渗透【附代码】(权限提升)

DerpNStink 靶机下载地址&#xff1a; https://www.vulnhub.com/entry/derpnstink-1,221/#downloadhttps://www.vulnhub.com/entry/derpnstink-1,221/#download 1. 主机发现端口扫描目录扫描操作系统等信息收集 1.1. 主机发现 nmap -sn 192.168.7.0/24|grep -B 2 08:00:27…

Rabbit高级特性 - 消息重试机制(两种实现)

文章目录 消息重试机制概述实现方式一&#xff1a;基于消息手动确认机制&#xff0c;返回 nack 实现配置文件交换机、队列、绑定生产者接口消费者演示和结论 实现方式二&#xff1a;基于重试配置实现配置文件交换机、队列、绑定生产者接口消费者演示和结论 消息重试机制 概述 …

对深度学习神经网络做了小改进,效果提升明显,可以发论文吗?

小改了深度学习神经网络某一层&#xff0c;效果提升显著&#xff0c;可以发顶会吗&#xff1f; 结论就是&#xff0c;当然可以发&#xff0c;只是能不能发出高质量论文&#xff0c;中稿顶会&#xff0c;还得看你这个小改进的具体情况还有你讲故事的能力。 先说改进的具体情况…

国家统计局中国主要城市面板数据(1990-2023年)

数据说明&#xff1a;数据来源于国家统计局&#xff0c;指标包含&#xff1a;城市、年份、第三产业增加值、第一产业增加值 地区生产总值、第二产业增加值、年末户籍人口、城镇非私营单位在岗职工平均工资 房地产开发投资额、房地产开发住宅投资额、房地产开发办公楼投资额、房…