零基础学数据库索引,B树

在这里感谢鲁班学院-周瑜老师,图灵学院周瑜老师,我的相关知识都是再B站上,观看有关视频学到的;

  • 为什么要使用索引?
    • 进行数据库查询时,需要把数据从磁盘加载内存,由于程序的局部性原理,所以数据加载时不上一条一条加载,而是一页一页加载;
    • 一页大小是16K,也就可以加载好多数据,使用链表将其连接,而数据越多链表越长,查询效率越低,所以就需要构建页内索引,来提高查询效率;
    • 当然要加载的数据可能不止一页,那么想要根据带查询的数据直接定位到页,也就需要构建页间索引;层层构建索引,而最外层的索引页就是数据索引;学过数据结构的同学可能会恍然发现这是一棵B+树;
    • 下图便是一个数据索引实例,从下往上看:每页有两条数据 且页间有指针构连接,上一级便是页索引,再上一级便是“页索引”页的索引;
      零基础学数据库索引,B树_第1张图片
    • 细心的同学可能会发现在最底层的页中,没有我说的业内索引;其实是使用了数据本身(数据索引键作为页内索引(key),其他字段作为索引内容(value)),我们将这种索引和数据聚集在一起的索引形式称为聚集性索引
    • 而非聚集性索引是下面这个样子的: 零基础学数据库索引,B树_第2张图片

你可能感兴趣的:(零基础学数据库索引,B树)