索引的数据结构

b-tree
索引的数据结构、密集索引与稀疏索引
b+ -tree
索引的数据结构、密集索引与稀疏索引
为什么b+ -tree更适合用于建立索引

  • 磁盘读写代价更低(非叶子节点不存储关键字信息,只存放指针,这样每个节点能够存储跟多的指针,极大的减少了树的层数)
  • 查询效率更加稳定(每次查找的路径都需要一直到叶子节点,所需时间更加稳定)
  • 更有利于数据库的扫描(可通过叶子节点之间连接的指针进行范围查找或者遍历整棵树)

hash索引
索引的数据结构、密集索引与稀疏索引
为什么hash所以不能成为主流
索引的数据结构、密集索引与稀疏索引
BitMap位图索引
索引的数据结构、密集索引与稀疏索引
密集索引和稀疏索引

  • 密集索引文件中每个文件的搜索码都对应一个索引值
  • 稀疏索引文件只为索引码的某些值建立索引项
    索引的数据结构、密集索引与稀疏索引
    密集索引简单的说就是:叶子节点不但存放键值,还保存了表中该行其他列的信息。密集索引决定了表的物理排列数据,而一张表只有一个排列顺序,既一张表只有一个密集索引。
    稀疏索引:叶子节点只保存键值信息和该行的地址,有的甚至只保存键位信息机器主键。

Mysql中的密集和稀疏索引

索引的数据结构、密集索引与稀疏索引
为什么一定要一个密集索引
在InnoDB中使用辅助索引查找将会查找两次
索引的数据结构、密集索引与稀疏索引

相关文章: