当前位置:网站首页>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 子句的子查询中,出现子查询时,会生成临时表
type:是较为重要的一个指标,结果值从最好到最坏依次是(性能)
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > index_subquery > range > index > all
注:(sytem,const,eq_ref,ref,range表示系统走了索引)
system: 表中只有一行记录(等于系统表);
const表示通过索引一次就找到了;
eq_ref: 维一记录;
ref: 非唯一索引扫描;
range: 只检索给定范围的行
all:全表扫描
index:索引覆盖(扫描全部)
null:执行时甚至不用访问表或索引;
paritiions:如果表数据量大的话,设置分区条件。
possible_keys:可能使用的key(索引)
key:实际上使用的索引
key_len:使用的键长度(字节数)
ref:显示哪个字段或常数与key一起被使用
rows:遍历多少数据才能找到
Extra:表示不合适在其他列中显示但十分重要的额外信息
Using index:覆盖索引以避免访问表。
Using temporary:排序临时表
Using where:检索后过滤
怎么对myql进行性能优化?
服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。
如果一列进行索引的时候,尽量避免使用null值,因为它的值比较复杂,不容易创建索引。
边栏推荐
- 【JS】利用JS给删除按钮添加提示框
- 通用型安全监测数据管理系统
- 论文解读(JKnet)《Representation Learning on Graphs with Jumping Knowledge Networks》
- 软件盘点企业使用服装ERP的好处
- Cool open technology x StarRocks: unified OLAP analysis engine, comprehensive building digital model of OTT
- JS string to GBK encoding ultra-reduced implementation
- TypeScript的配置文件tsconfig.json
- EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
- 【Metaverse系列一】元宇宙的奥秘
- 工程仪器设备在线监测管理系统常见问题和注意事项
猜你喜欢
TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践
Interviews are no longer hanged!This is the correct way to open the seven schemes of Redis distributed locks
003_Kubernetes核心技术
企业如何选择低代码开发平台
Description of the functional scenario of "collective storage and general governance" in the data center
精酿啤酒品牌,过把瘾就死?
leetcode-每日一题899. 有序队列(思维题)
学会 Arthas,让你 3 年经验掌握 5 年功力!
一个域名对应多个IP地址
浅谈Service Mesh对业务系统的价值
随机推荐
FinClip | July 2022 Product Highlights
The strongest distributed lock tool: Redisson
phoenix创建映射表和创建索引、删除索引
九种方法!教你如何读取resources目录下的文件路径
通用型安全监测数据管理系统
CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
阿里二面:没有 accept,能建立 TCP 连接吗?
Map和Set
【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十一)
【数据库数据恢复】SqlServer数据库无法读取的数据恢复案例
uniapp 切换 history 路由模
Huawei, Lenovo, BAIC, etc. were selected as the first batch of training bases for "Enterprise Digital Transformation and Security Capability Improvement" by the Ministry of Industry and Information Te
JVM参数设置
沃尔沃:这是会“种草”的“安全感”!
软件测试<用例篇>
204. Count Primes
Excuse me this hologres dimension table is cached?How to Finished
405. Convert a Number to Hexadecimal
云图说丨初识华为云微服务引擎CSE
软件测试<进阶篇-->测试分类>