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,一个全表扫描也就傻逼了。。
你是否
也活成了别人想要的样子
等风来
不如追风去
也活成了别人想要的样子
等风来
不如追风去