首页 > 技术文章 > 索引的原理

tangjian07 2019-06-30 15:05 原文

提到数据库索引,想必大家都不陌生,在日常工作中也会经常接触到。最近因为面试被问及索引的原理及数据结构,本以为自己会了,但是还是表达不清楚,特此总结几点。。


  1. 索引可以比作一本书的目录,我们要想定位书中的某个章节,直接查找目录就可以迅速找到。

  2. 索引的目的就是为了提高数据库的查找效率,在这里指的是MySQL数据库中默认引擎(InnoDB)的索引。

  3. 索引的底层数据结构是B+树,采用的是典型的以空间换时间策略(因为新建一个索引就会新增一棵B+树,将此索引的key保存在这个B+树上)。

  4. 在InnoDB中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。

  5. 索引类型分为主键索引和非主键索引。主键索引的叶子节点存的是整行数据,非主键索引的叶子节点内容是主键的值。在InnoDB里,主键索引也被称为聚簇索引,非主键索引也被称为二级索引。

推荐阅读