B-Tree索引

Posted liuxuelin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B-Tree索引相关的知识,希望对你有一定的参考价值。

1.数据结构

基本结构为B+树,B+树的数据结构:

https://www.cnblogs.com/liuxuelin/p/14773342.html

2.B-tree索引的操作

2.1索引的创建

首先将每一个需要索引的元组生成对应的索引元组,然后调用tuplesort对索引元组进行排序,最后创建索引。

索引元组是一个索引结构的基本单位,由IndexTupleData表示,包含了指向表元组的id和其他基本信息

 

填充因子 

创建索引时可以指定索引的填充因子,来设定创建索引时每个索引页面的数据填充率,如果没用设定,使用默认值90,:

  • 叶子节点中加入的索引元组总大小超过页面大小的90%视为充满
  • 内部节点中加入索引元组总大小超过页面大小的70%视为充满
  • 分裂节点时,如果该节点为该层的最右节点,必须保证分裂后左节点的空闲空间为(100-填充率)%,否则应保持左右节点空闲空间相等

填充因子设置的原则:

  • 取值范围10-100
  • 如果是不会改变的表,可设置值为100,这样索引的物理体积最小
  • 如果是不断增长的表,则较小的填充因子更合适,这样可以尽可能少的对页进行分裂

 

以上是关于B-Tree索引的主要内容,如果未能解决你的问题,请参考以下文章

B-Tree 索引和 Hash 索引的对照

MySQL Hash索引和B-Tree索引的区别

Mysql B-Tree和B+Tree索引

B-Tree索引

图解MySQL索引--B-Tree(B+Tree)

MySQL索引