前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL】MySQL的优化(二)

【MySQL】MySQL的优化(二)

作者头像
陶然同学
发布2023-03-15 09:49:03
1.6K0
发布2023-03-15 09:49:03
举报
文章被收录于专栏:陶然同学博客

目录

explain分析执行计划

Explain分析执行计划-Explain 之 id

Explain分析执行计划-Explain 之 select_type

Explain分析执行计划-Explain 之 type

Explain分析执行计划-其他指标字段

explain分析执行计划

通过以上步骤查询到效率低的 SQL 语句后,可以通过 EXPLAIN命令获取 MySQL如何执行

SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序。

代码语言:javascript
复制
-- 准备测试数据 
create database mydb13_optimize; 
use mydb13_optimize; 

执行sql脚本sql_optimize.sql添加数据 
代码语言:javascript
复制
explain select * from user where uid = 1;
代码语言:javascript
复制
explain select * from user where uname = '张飞';

 Explain分析执行计划-Explain 之 id

d 字段是 select查询的序列号,是一组数字,表示的是查询中执行select子句或者是操作表的顺

序。id 情况有三种:

1、id 相同表示加载表的顺序是从上到下。

代码语言:javascript
复制
explain select * from user u, user_role ur, role r where u.uid = ur.uid and ur.rid = r.rid ;

2、 id 不同id值越大,优先级越高,越先被执行。

代码语言:javascript
复制
explain select * from role where rid = (select rid from user_role where uid = (select uid from user where uname = '张飞'))

3) id 有相同,也有不同,同时存在。id相同的可以认为是一组,从上往下顺序执行;在所有的组

中,id的值越大,优先级越高,越先执行。

代码语言:javascript
复制
explain select * from role r , (select * from user_role ur where ur.uid = (select uid from user where uname = '张飞')) t where r.rid = t.rid ; 

Explain分析执行计划-Explain 之 select_type

 表示 SELECT 的类型,常见的取值,如下表所示:

Explain分析执行计划-Explain 之 type

type 显示的是访问类型,是较为重要的一个指标,可取值为:

结果值从最好到最坏以此是:system > const > eq_ref > ref > range > index > ALL

Explain分析执行计划-其他指标字段

Explain 之 table

显示这一步所访问数据库中表名称有时不是真实的表名字,可能是简称,

explain 之 rows

扫描行的数量。

Explain 之  key

possible_keys : 显示可能应用在这张表的索引, 一个或多个。 key : 实际使用的索引, 如果为

NULL, 则没有使用索引。 key_len : 表示索引中使用的字节数, 该值为索引字段最大可能长度,

并非实际使用长度,在不损失精确性的前提下, 长度越短越好 。

Explain之 extra

其他的额外的执行计划信息,在该列展示 。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • explain分析执行计划
  •  Explain分析执行计划-Explain 之 id
  • Explain分析执行计划-Explain 之 select_type
  • Explain分析执行计划-Explain 之 type
  • Explain分析执行计划-其他指标字段
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档