索引的原理

Posted tangjian07

tags:

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

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


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

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

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

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

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

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

「Mysql索引原理(七)」覆盖索引

InnoDB索引查询原理

MySQL 索引原理以及查询优化

Lucene底层原理和优化经验分享-Lucene简介和索引原理

不会吧不会吧,难道还有人不了解MySQL索引底层原理?

GP索引调优测试--原理篇