mysql最左匹配原则与索引选择原则

本文详细介绍了MySQL中的EXPLAIN语句分析,解释了联合索引结构和最左匹配原则,包括如何验证最左匹配原则。此外,还探讨了MySQL在索引选择时的优先考虑因素,如条件、分组和排序的权衡,以及优化方案,为数据库性能提升提供了指导。
摘要由CSDN通过智能技术生成

一、explain语句分析

1. 作用

	1.1 通常用于sql语句的性能分析
	1.2 打印出一条sql语句优化器的执行计划
	1.3 索引使用情况
	1.4 性能好不好

2. 语法

	 explain + 要操作的sql语句;
explain select * from article where status = 0;

3. 详细字段说明

explain分析sql语句:

explain分析sql语句

id – select识别符。

	这是select的查询序列号,id的值越大优先级别越高,越先被执行,如果id相同,执行顺序由上至下

select_type – 表示select语句的类型。

	类型:
		SIMPLE:表示最简单的查询,不包括连接查询与子查询
		  explain select * from user where id = (select id from where name="asi");
		PRIMARY:最外层的查询 -- select * from user where id =();
		SUBQUERY:子查询 -- select id from where name="asi"
		  explain select id from where name="asi" union all select id from where name="ayu";
		UNION:合并 联合查询,union 后面的那张表就会表示成它
		UNION RESULT:联合结果
		DERIVED: 衍生查询-在select出一批自定义列的数据,概念上相当于一张表,但是该表只在语句执行过程出现和

table – 与查询语句相关的表。

partitions – 表分区,参数的使用

type – 表示的是表的连接类型。

	类型:
		①all:遍历全表数据查询

		②index:只遍历索引树上的数据查询

		③range:只检索给定范围的行,使用一个索引来选择行,条件过滤,索引定位

		④ref:表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值

		⑤null :MySQL在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查找完成。

		⑥eq_ref: 类似ref,区别就在使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配,
			      简单来说,就是多表连接中使用primary key或者 unique key作为关联条件

		⑦const:当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值