MongoDB索引,数据库索引简介

索引是什么

  首先要知道索引是什么,很多网站都举了一大堆例子,说的花里胡哨,各种查询各种数据做演示,都离不开一个中心思想,就是索引可以加快搜索的速度。。

  索引究竟是什么:索引是一种存储结构(structure),索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

 

简单示例

  示例数据

k v
1 56
2 66
3 41
4 52
5 75
6 64

未使用索引而进行全表扫描

  一共6行数据,假设查询v=64时,全表扫描需要从要从k1查询到k6,一共查询6次,总而产生6次IO。

使用二叉树索引

  二叉树是什么:是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分的有序树。

  设v值为二叉树索引(早期数据库索引结构为二叉树,目前已经淘汰,有了更优的B±Tree结构),可视化视图如下。

  

  假设查询v=64时,使用二叉树索引查询执行流程为56→66→64,一共查询3次,比全表扫描节省了3次扫描。

其他说明

  索引是独立于存储的,与持久化数据隔离,索引的最终数据指向为持久化数据IO地址。

  索引的读取一般都是在内存中,所以是相当快的,大数据的表查询一定是通过索引来进行优化的,学优化,先索引,无论SQL多牛B,一个全表扫描也就傻逼了。。

posted @ 2020-09-14 10:33  ゞ七情  阅读(309)  评论(0编辑  收藏  举报