当前位置:网站首页>mysql之的执行计划
mysql之的执行计划
2022-08-03 17:28:00 【Bugxiu_fu】
一、什么是执行计划?
使用 EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MYSQL是如何处理你的sql语句的。
执行计划流程(最好配合图理解)
浏览器(客户端)发送一个请求,执行数据库查询之前,找到连接池(循环使用),跟数据库驱动进行连接,获取连接之后找到mysql服务的,然后连接池找到查询缓存,然后进行解析,找到解析树解析,预处理完了之后生成新的解析树,新解析树后查询优化器,执行sql之后,通过引擎找到数据文件读取数据返回给缓存,最后才返回给用户。
一些优化器:(了解)
CBO:基于成本的优化器,看走那一个索引,根据成本值统计索引。
RBO: 基于规则的优化器,有索引使用索引。那么所有带有索引的表在任何情况下都会走索引
二、执行计划的值与参数
代码
explain (select * from t_users id=1 union select * from t_users id=2);运行结果
- select_type:类别,主要用于区别普通查询,联合查询,子查询等的复杂查询(union)
simple:简单的select查询,不包含子查询或者union
primary:查询中包含任何复杂的子部分,最外层查询则被标记
derived:from列表中用到子查询,将表中当成查询的条件,也计算子查询
union:包含在 from 子句的子查询中,出现子查询时,会生成临时表
- paritiions:如果表数据量大的话,设置分区条件。
- possible_keys:可能使用的key(索引)
- key:实际上使用的索引
- key_len:使用的键长度(字节数)
- ref:显示哪个字段或常数与key一起被使用
- rows:遍历多少数据才能找到
- type:是较为重要的一个指标,结果值从最好到最坏依次是(性能)
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > index_subquery > range > index > all注:(红色标注的表示系统走了索引)
system: 表中只有一行记录(等于系统表);
const表示通过索引一次就找到了;
eq_ref: 维一记录;
ref: 非唯一索引扫描;
range: 只检索给定范围的行
all:全表扫描
index:索引覆盖(扫描全部)
null:执行时甚至不用访问表或索引;
- Extra:表示不合适在其他列中显示但十分重要的额外信息
Using index:覆盖索引以避免访问表。
Using temporary:排序临时表
Using where:检索后过滤
怎么对myql进行性能优化?
服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。
如果一列进行索引的时候,尽量避免使用null值,因为它的值比较复杂,不容易创建索引。
边栏推荐
- 论文解读(JKnet)《Representation Learning on Graphs with Jumping Knowledge Networks》
- 并发高的情况下,试试用ThreadLocalRandom来生成随机数
- 【机器学习】机器学习基本概念/术语3
- ASP.NET Core依赖注入之旅:3.Service Locator和依赖注入
- 【时间的比较】
- CC2530_ZigBee+HUAWEI CLOUD IOT: Design your own cold chain acquisition system
- 广告电商系统开发之会员系统板块
- 数字资产的价值激发:NFT 质押
- EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
- 为什么我用了Redis之后,系统的性能却没有提升
猜你喜欢

Detailed explanation of setting HiSilicon MMZ memory and OS memory

融云「音视频架构实践」技术专场【内含完整PPT】

Adobe是什么?

C# 构造函数如人之影子

一键进入华为云会议,长期免费值得所有开发团队有一套【华为云至简致远】

ORACLE CLOUD 在国内有数据中心吗?

Component communication - parent-child component communication

掌握Redis的Sentinel哨兵原理,可助你拿到25k的offer

【技术白皮书】第一章:OCR智能文字识别新发展——深度学习的文本信息抽取

JS string to GBK encoding ultra-reduced implementation
随机推荐
CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
深度学习跟踪DLT (deep learning tracker)
PMP备考敏捷考题的五点应对策略
error:Illegal instruction (core dumped),离线下载安装这个other版本numpy
FinClip | July 2022 Product Highlights
高效的组织信息共享知识库是一种宝贵的资源
Looking at the ecological potential of Hongmeng OS from the evolution of MatePad Pro
茅台日赚1.65亿,经销商日子却越来越难
云图说丨初识华为云微服务引擎CSE
[Unity Getting Started Plan] Basic Concepts (6) - Sprite Renderer Sprite Renderer
Description of the functional scenario of "collective storage and general governance" in the data center
【保姆级示例向】观察者模式
sphinx error connection to 127.0.0.1:9312 failed (errno=0, msg=)
阿里二面:没有 accept,能建立 TCP 连接吗?
TypeScript文件的编译执行
JS中对象数组用sort按属性排序
#yyds干货盘点# 面试必刷TOP101:两个链表的第一个公共结点
广告电商系统开发之会员系统板块
被误解的 MVC 和被神化的 MVVM(二)
TiKV & TiFlash accelerate complex business queries丨TiFlash application practice

