【Mysql】——explain

Explain

    使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理我们所写的SQL语句。

使用

使用方式

explain + sql
EXPLAIN SELECT * FROM t_user

分析结果

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra

id

    select查询的序列号,表示查询中执行select子句或操作的顺序
    ①、id相同——表明执行顺序为从上往下

EXPLAIN SELECT
	tb_content.*
FROM
	tb_content_category,
	tb_content
WHERE
	tb_content_category.id = tb_content.category_id
                                                              
    ②、id不同——如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行

EXPLAIN SELECT
	tb_item.*
FROM
	tb_item
WHERE
	cid = (
		SELECT
			id
		FROM
			tb_item_cat
		WHERE
			id = (
				SELECT
					item_cat_id
				FROM
					tb_item_param
				WHERE
					id = 25
			)
	)

   所以子查询中tb_item_param优先执行与tb_item_cat
   ③、id有相同也有不同
   id如果相同,认为是同一组,从上往下执行
   id不同,id值越大,优先级越高,越先执行

select_type

    查询的类型,主要用于区别普通查询、联合查询、子查询等的复合查询
分类
    SIMPLE:简单的select 查询,查询中不包括子查询或者UNION
    PRIMARY:查询中若包含任何复杂的子部分,最外层查询则被标记为
    SUBQUERY:在SELECT或者WHERE列表中包含了子查询
    DERIVED:在FROM列表中包含的子查询被标记为DERIVED(衍生)MYSQL会递归执行这些子查询,把结果放在临时表里
    UNION:若第二个SELECT出现在UNION之后,则标记为UNION;若UNION包含在FROM子句的子查询中,外层         SELECT将被标记为:DERIVED
    UNION RESULT:从UNION表获取结果的SELECT

table

    显示这一行的数据是关于那张表的

possible_type

    显示可能应用在这张表中的索引,一个或者多个。查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用。

key

    实际使用的索引,如果为NULL,则没有使用索引
key_len
ref
rows
Extra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值