二叉树,存在平衡问题
红黑树也没用,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)顺序的索

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

被折叠的 条评论
为什么被折叠?



