mysql explain 详解
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,这时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,可以帮助选择更好的索引和写出更优化的查询语句。
EXPLAIN SELECT *
FROM `ri_user`
WHERE
`id` IN ( SELECT id FROM `ri_user` WHERE NAME = 'Rickie20' );

expain出来的信息有12列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra,下面对这些字段出现的可能进行解释:
- select_type:是否为复杂语句。
- type:type 为ALL 表示进行的是全表扫描,为index 则表示使用了索引。
- possible_keys:可能利用的索引的名字,如果没有任何可以利用的索引,则会显示 null。
- key:它显示了MySQL 实际使用的索引的名字。
- key_len:表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
- Extra:查询中每一步实现的额外细节信息,优化的时候经常会被使用。
相关推荐
-
MySQL 安装失败,提示Apply Security Settings 的处理办法
MySQL 安装失败,提示Apply Security Settings 的处理办法2025-04-20 01:54:57 -
MySQL事务隔离级别详解2025-04-20 01:44:01
-
一文说清nginx规则匹配(含案例分析)2025-04-20 01:10:02
-
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)2025-04-20 00:55:25 -
php定义变量规则不能包含哪些字符?2025-04-20 00:27:24