Mysql索引随笔

索引的数据结构-- B+树

一个表最好不超过5个索引,一个索引不超过5个字段

myisam引擎: 
索引树(.myi)放在一个文件,数据(.myd)放在一个文件

主键索引:
二级索引:
两者的存储结构并没有什么不同,叶子结点存储数据行所在的物理地址

innodb引擎:
索引树和数据在同一个文件

聚集索引(主键索引):
		叶子节点存储数据行,一个表只有一个聚集索引,一般是主键索引;
		聚集索引的选择:1、主键索引   2、虚拟的主键   3、第一个非空索引

非聚集索引(二级索引):叶子节点存储对应的主键;



什么时候不加索引?
1、数据少的表
2、不经常用的字段
3、经常更新的字段

联合索引:多个字段建立一棵索引树,遵循最左前缀原则

最左前缀原则:在联合索引中,要想命中索引,需要按照建立索引时的字段顺序依次使用
			也就是说,如果建立了索引(a,b,c)->id,
			那么select id from table where a=? and b=?是可以命中索引的;
			注:select id from table where b=? and a=?与上面等价,因为mysql自带的优化器会做优化
			
			而select id from table where a=? and c=?时,c不能命中索引,因为缺乏b字段,不符合最左前缀原则
			参考优化方案:????
			疑惑:a能命中索引,那命中索引的结果集是什么?
				  c不能命中索引,那么它又是在什么数据集上操作的呢?

覆盖索引(很重要,速度飞快):所查询的字段,能在一个索引树中全部找到。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值