老罗带你轻松搞定针对索引存储结构的分块查询算法
2017-11-16 14:45
260 查看
先上个图,比较清晰
![](https://img-blog.csdn.net/20171116141736230?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzMwNjA0MDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
分析:数据表是什么呢,比如我有个数组是被查询的集合,那么这个数组就是数据表,那么什么是索引表其实就是保存了数组里面的某些元素和索引值。
继续看实例:
![](https://img-blog.csdn.net/20171116143355666?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzMwNjA0MDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
如果我们针对数据表从8 —-到87这些元素中找具体某个元素的话,由于是没有排序的,那么肯定是不能进行二分查找,如果是顺序查询数据量又太多,效率太差,因此我们想个办法,能不能让这个数组中的每段数据是无序的,但是每段数据的最都小于下段数据的每个元素。
这种数据要么已经是直接给我。要么直接用算法去整理出来。
有了这种具备分块查询算法的数据表的前提之下,开始真正的索引表的设计咯。
我们根据数据表,提前把第一块数据
4000
的首地址写在索引项目的第二个数据变量当中,第一块最大的元素存在对应的元素变量中,其他索引项目依次填写就可以。
准备工作完毕后,假如我们想得到80这个元素,我们先根据二分查找算法得到80这个元素在索引表中的什么位置,比如我们找到66和85之间,那么我们肯定知道80这个元素是在85这个元素对应的段里面,那么我们在得到这个元素对应的索引值就是15。 通过这个15索引我们就得到到了71这个元素值,这个时候我在用顺序查询算法也就是逐一比较元素在当前段里找到80那个元素,返回地址18。
查询完毕,我们发现这个算法就是是在顺序查找和二分查询之间的。 多开了内存来保存索引表。
效率还不错吧。具体应用场景其实我们的图书馆就是分块存储的结构的。我们去找具体什么书,我们是先去电脑查询我们的书比如是自然科学类型,那么我们就跑到自然科学牌下的一排找,这个时候我们是不是一本一本对比找啊 ,对的 。 好了 ok。
分析:数据表是什么呢,比如我有个数组是被查询的集合,那么这个数组就是数据表,那么什么是索引表其实就是保存了数组里面的某些元素和索引值。
继续看实例:
如果我们针对数据表从8 —-到87这些元素中找具体某个元素的话,由于是没有排序的,那么肯定是不能进行二分查找,如果是顺序查询数据量又太多,效率太差,因此我们想个办法,能不能让这个数组中的每段数据是无序的,但是每段数据的最都小于下段数据的每个元素。
这种数据要么已经是直接给我。要么直接用算法去整理出来。
有了这种具备分块查询算法的数据表的前提之下,开始真正的索引表的设计咯。
我们根据数据表,提前把第一块数据
4000
的首地址写在索引项目的第二个数据变量当中,第一块最大的元素存在对应的元素变量中,其他索引项目依次填写就可以。
准备工作完毕后,假如我们想得到80这个元素,我们先根据二分查找算法得到80这个元素在索引表中的什么位置,比如我们找到66和85之间,那么我们肯定知道80这个元素是在85这个元素对应的段里面,那么我们在得到这个元素对应的索引值就是15。 通过这个15索引我们就得到到了71这个元素值,这个时候我在用顺序查询算法也就是逐一比较元素在当前段里找到80那个元素,返回地址18。
查询完毕,我们发现这个算法就是是在顺序查找和二分查询之间的。 多开了内存来保存索引表。
效率还不错吧。具体应用场景其实我们的图书馆就是分块存储的结构的。我们去找具体什么书,我们是先去电脑查询我们的书比如是自然科学类型,那么我们就跑到自然科学牌下的一排找,这个时候我们是不是一本一本对比找啊 ,对的 。 好了 ok。
相关文章推荐
- SQL Server性能优化(10)非聚集索引的存储结构
- 四种数据存储结构---顺序存储 链接存储 索引存储 散列存储
- SQL Server存储引擎 - 05. 索引的结构与分类
- 精通cobol--9.11.4 索引表的内部存储结构
- C++学习总结——顺序存储,链式存储,索引存储,哈希存储的优缺点,以及vector数组,list链表,十字链表,索引结构,hash表的实现
- 数据库索引 index介绍 sql索引存储结构
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
- 四种数据存储结构---顺序存储 链接存储 索引存储 散列存储
- InnoDB引擎的索引和存储结构
- 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储
- 数据库系统——基于索引的存储结构
- 数据存储-索引结构
- MongoDB 针对嵌套对象,多层级结构存储,增删改查
- MySQL高阶之事务、存储结构、索引、触发器
- [数据结构]四种数据存储结构---顺序存储 链接存储 索引存储 散列存储
- 第6章、核心存储和索引结构(Sqlserver存储、理解索引、创建修改删除索引、维护索引、索引重新生成)
- 索引及存储结构随想【收集中】
- MongoDB 针对嵌套对象,多层级结构存储,增删改查
- 获取表的结构和索引的存储过程SP_GET_TABLE_INFO
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构 v3 r819