深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第1张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第2张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第3张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第4张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第5张

 深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第6张

关键字的个数等于路的个数减1。

一个二叉树节点可以存储4kb大小的数据,假如关键字是整型的一个关键字占用4byte,其他数据冗余4个字节

4 kb = 4*1024 byte = 4096 byte。

4096/8 = 512 也就是说一个节点中可以存储512个关键字。

多路平衡查找树如何保证绝对的平衡?

分裂

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第7张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第8张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第9张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第10张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第11张

辅助索引最后子节点存储的并不是最后的数据或者数据的地址而是对应的主键索引。为何要这样做?

B+ 树是绝对平衡树,那么新增或者删除会导致节点的分裂移动从而导致子必须同时修改子节点的数据区。如果有多个索引这样就会增加索引的维护成本。

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第12张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第13张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第14张

离散性差那么索引就不知道如何匹配,还不如全表扫描

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第15张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第16张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第17张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第18张

深入理解Mysql索引的底层数据结构 B+ Tree (1) Mysql 第19张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄