Mariadb EXPLAIN

本文详细解析了MariaDB中使用EXPLAIN查询语句的执行计划,包括id、select_type、table、type等关键字段的含义及作用,帮助理解查询优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MariadDB 查询中可以使用SELECT的前面使用EXPLAIN来查看索引的使用情况,接下来,我们来描述一下,explain所产生的一些信息。
EXPLAIN SELECT clause;

获取查询执行计划信息,用来查看查询优化器如何执行查询

EXPLAIN SELECT * FROM students WHERE Name='Di Yun'\G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: students
         type: ref
possible_keys: stuName
          key: stuName
      key_len: 152
          ref: const
         rows: 1
        Extra: Using index condition

id

当前查询语句中,每个SELECT的编号,
	复杂查询有三种
		简单子查询
		用于FROM的子查询
		联合查询
	联合查询会出现一个匿名表
EXPLAIN SELECT Name,Age FROM students UNION SELECT Name,Age FROM teachers ORDER BY Age;
+------+--------------+------------+------+---------------+------+---------+------+------+----------------+
| id   | select_type  | table      | type | possible_keys | key  | key_len | ref  | rows | Extra          |
+------+--------------+------------+------+---------------+------+---------+------+------+----------------+
|    1 | PRIMARY      | students   | ALL  | NULL          | NULL | NULL    | NULL |   26 |                |
|    2 | UNION        | teachers   | ALL  | NULL          | NULL | NULL    | NULL |    4 |                |
| NULL | UNION RESULT | <union1,2> | ALL  | NULL          | NULL | NULL    | NULL | NULL | Using filesort |
+------+--------------+------------+------+---------------+------+---------+------+------+----------------+

select_type

简单查询为simple
复杂查询:
	SUBQUERY:简单子查询
	DERIVED:用于FROM中的子查询
	UNION:UNION语句的第一个之后的SELECT语句
	UNION RESULT:匿名临时表

table

SELECT语句关联到的表

type

关联类型,或访问类型,即Mariadb决定如何去查询表中的行的方式
	ALL:全表扫描
	index:根据索引的次序进行全表扫描;如果在Extra列出现“Using index”表示使用覆盖索引
而非全表扫描
	range:有范围限制的根据索引实现范围扫描,扫描位置起始于某一点,结束于另一点
	eq_ref:仅返回一个行,但需要与额外与某个参数进行比较
	ref:根据索引返回表中匹配某单个值的所有行
	const,system:直接返回单个行

possible_keys:

查询可能会用到的索引

key:

查询中使用了的索引

key_len:

索引使用的字节数

ref:

再利用key字段所表示的索引完成查询时所有的列或某常量值

rows:

Mariadb估计为找到目标所读取的行数

Extra

额外信息
	Using index:将会使用覆盖索引,以避免访问表
	Using where:Mariadb服务器将在存储引擎检索后,在进行一次过滤
	Using temporary:使用临时表
	Using filesort:对结果使用一个外部索引排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值