Mysql的索引和执行计划怎么看?

1. mysql的索引

1.1 索引的介绍

			索引是帮助MySQL高效获取数据的数据结构。

1.2 索引的分类

		聚集索引:可以理解为表的主键,可以通过主键拿表中完整的一行数据
		辅助索引:单列索引与联合索引
			联合索引最左原则:比如创建(a,b,c)联合索引,相当于创建了a,ab,abc这三个索引,在使用联合索引进行查询的时候必须包含最左列
			查看表的索引:`desc test; show index from test;`
			创建索引示例:
				随建表语句创建索引:`create table test(id int primary key auto_increment, name varchar(10), age int, index idx_name(name))`
				给表增加索引:`alter table test add index idx_age(age);	alter table test add index idx_name_age(name,age); `
				删除索引:`alter table test drop index idx_age;`

1.3 索引设计原则

		1)建表时必须有主键列,一般是和表无关的列,如id
		2)选择唯一性索引,唯一性索引的值是唯一的
		3)为经常需要where,order by,group by ,join on的字段创建索引
		4)删除无关或很少使用的索引 
		5)尽量少在经常更新的列上创建索引
		6)需要限制索引的数量,不是越多越好
		
		什么情况下索引会失效?
		1)表数据量很少
		2)没有索引可供使用
		3)查询的结果 集超过表的30%左右时
		4)使用范围查询时,比如like,between and ,> <, !=, or,is null等情况

2. mysql的执行计划

		如何查看执行计划
		desc select * from test;
		explain select * from test;
		有以下比较重要的结果字段
		id:执行顺序,id从大到小执行,id相同从上到下执行
		type:分为全表扫描(ALL)和索引扫描(index,range,ref,const)
		key: 用到的索引
		key_len: 联合索引覆盖长度,计算规则是int为4,bigint为8,char(10)为40
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值