navicat查看sql执行计划

一.怎么查看执行计划
点击解释,在点击运行,然后在结果框点击Explain1查看执行计划

二.执行计划返回内容解释

1.id

表示表的读取顺序,分为两种情况:

id相同,读表顺序从上往下

id不同,优先读取id大的

多表查询的时候,可以用来看读表的顺序,不过一般生产开发中不会多表查询。

2.select_type

查询类型,有如下类型:

simple 简单语句,不包含子查询或者union

primary 若语句包含复杂查询,则语句的最外层为primary

subquery 在select或者where中包含子查询

derived 在from中包含的子查询为derived(衍生表)

union 在union之后的查询,被标记为union类型

union result 从union获取结果的select查询

一般都是simple,因为生产环境的sql不会写那么复杂,这也是为了高并发下的性能考虑。

3.table

对应的表

4.type

索引类型, 有很多种,常见的类型按照性能从差到好为:

all < index < range < ref < eq_ref < const < system

all 表示全表扫描,性能最差

index 走索引,扫描了索引文件的全部数据

range 走索引,索引列使用了范围查找,如between, in,

ref 表示非唯一性索引

eq_ref 表示唯一索引

const 一次就找到数据的唯一索引

system 只有一条数据的系统表

5.possible_keys

mysql分析可能使用到的索引

可以看到是PRIMARY

也就是它分析应该是走了主键索引

6.key

实际使用的索引,当key有值时才表示真的用到了索引

如果是PRIMARY,也就是实际上查询确实是走了主键索引

7.key_len

使用到的索引长度,根据索引组合字段类型所占的字节数来计算。

我们的主键应该是varchar(字符串类型),占8个字节长度

8.ref

哪些列或常量被用于查找索引列上的值,即索引列=ref值。

一般情况下有常量和表的列名两种情况

此处可以看到是常量const

9.rows

mysql估算的找到满足条件的记录所需要读取的行数,越少越好。

10.extra

mysql将执行计划的其他信息放到extra中。常见的有:

Using filesort 排序没有用到索引(重要,能使用索引排序是更好的)

Using temporary 使用了临时表保存中间结果,mysql在对查询结果排序时使用临时表,常见于order by 和group by(重要,使用临时表降低性能,最好排除掉)

Using index 表明select查询使用了覆盖索引(即只查索引文件就找到了需要的数据,不再需要访问表)

Using where 表示使用了where查询条件

Using join buffer 表示表join关联使用到了缓存

impossible where 表示where条件永远是false,拿不到数据

using index condition 使用了索引条件

Navicat Premium是一款功能强大的数据库管理工具,它可以方便地查看和管理数据库。 在查看执行计划参数之前,我们首先需要执行一条SQL查询语句。在Navicat Premium的查询编辑器中输入SQL语句,然后点击执行按钮。 执行完成后,我们可以在结果窗口中查看到查询的执行结果和执行计划。在结果窗口的底部可以看到一个标签页,标有"Execution Plan",点击该标签页可以查看执行计划的相关参数。 执行计划参数解释如下: 1. 查询类型(Query Type):表示该查询语句是SELECT、INSERT、UPDATE还是DELETE。 2. 访问类型(Access Type):表示数据库执行查询时使用的具体访问方式,如全表扫描、索引扫描、索引范围扫描等。 3. 访问对象(Accessed Table):表示数据库中被访问的表。 4. 许可证类型(License Type):表示该查询执行时使用的许可证类型,如Cost-Based Optimization、Rule-Based Optimization等。 5. 行数(Rows):表示查询返回的行数。 6. 扫描行数(Scanned Rows):表示在执行查询时实际扫描的行数。 7. 返回行数(Returned Rows):表示返回给用户的行数,可能小于扫描行数。 通过查看执行计划参数,我们可以了解到查询的执行过程,包括访问方式、访问对象以及查询的行数等信息。这些参数对于数据库性能优化和调优非常重要,可以帮助我们分析和改进SQL查询语句,提升数据库的查询效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值