mysql索引B树B+树,联合索引

本文详细介绍了MySQL索引中的B+树原理,强调了B+树在减少IO操作和提高访问性能上的优势。讨论了B树与B+树的区别,以及B+树在范围查询上的优化。还提到了索引创建的原则,包括最左前缀匹配、避免计算和函数、选择区分度高的列等。同时,文章探讨了联合索引的使用和限制,以及Insert、Delete和Update操作对索引的影响。最后,提醒了在建索引时需要注意的事项,如避免过多的联合索引和在繁忙时段创建索引的风险。

二叉树,存在平衡问题

红黑树也没用,mysql底层没用到, 层级太多,数据量太大有问题

B+树,折半查找算法:特点有:

1.非叶子节点不存储数据,只存储索引,减少io

2.叶子节点包含所有索引字段

3,叶子节点指针相连,提高访问性能

b树和b+树的区别,b树叶子节点没有相互指针,没法范围查询

b+树把数据都放叶子节点,减少树的高度,减少io

详解b+树

如上图,是一颗b+树,关于b+树的定义可以参见B+树,这里只说一些重点,浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所示),如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。真实的数据存在于叶子节点即3、5、9、10、13、15、28、29、36、60、75、79、90、99。非叶子节点只不存储真实的数据,只存储指引搜索方向的数据项,如17、35并不真实存在于数据表中。

这一类前面相同的数据。用普通索引,效率很低。1可以反转2可以计算哈希来索引,伪哈希算法,重复率大大降低

可以有冗余索引,不能有重复索引,

修改操作多会产生索引碎片,可以用修复一下

查询优化原则,查的快,取得快

取得快指使用索引覆盖,减少回行,回行是io流浪费时间

查的快,使用索引

建索引的几大原则

1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、 3 and d = 4 如果建立(a,b,c,d)顺序的索

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值