查找-之线性索引查找

简介: 针对场景:博客网站论坛的帖子回复、服务器日志记录数据量大,每条记录无法做到有序排列记录

针对场景:

博客网站论坛的帖子回复、服务器日志记录

数据量大,每条记录无法做到有序排列记录

解决方法:

索引---把关键字和它对应的记录相关联的过程

索引分类:线性索引、树形索引、多级索引

线性索引:将索引项集合组织为线性结构---索引表

线性索引包括:稠密索引、分块索引、倒排索引

稠密索引

结构:

索引项---对应---记录

索引项是有序的、记录数据表可以是无序的

336ecfad9ae39dffbe2b1fb4ef2796e0_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlZGEz,size_16,color_FFFFFF,t_70.png

                         稠密 索引记录的结构图


查找方式:

索引项使用折半/二分法、插值查找、斐波那契查找

记录数据表--顺序查找

缺点:

数据集很大,则索引项很大,对内存有限的计算机,反复访问磁盘使得查找性能降低

生活示例:

小本子记录各物品的放置位置

分块索引

结构:

对数据集分为若干块,使得块满足:

块内无序:快内的记录不要求有序

块间有序--要求第二块所有记录的关键字均大于第一块记录的关键字

索引项---对应--每块

索引项的的结构包括3项:最大关键码、块内记录的个数、指向块首数据元素的指针

532d292305081745dfd6a07683c2f121_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlZGEz,size_16,color_FFFFFF,t_70.png

                         分块索引记录的结构图

查找方式:

块间--使用折半/二分法、插值查找、斐波那契查找

块内--使用顺序查找

应用示例:

图书馆书本的查找

普遍应用于数据库表查找

倒排索引

结构

次关键码--对应--记录号表

记录号表存储具有相同次关键字的所有记录的记录号

实际应用:依据属性(字段、次关键码)值查找记录

索引表:属性值和属性值的各记录地址

示例:索引表(单词表)

380ec39fbcafaa40519408633c36e05c_20200204164737830.png

特点:

查找记录快,在生成索引表后,查找时不用读取记录

实际应用:

搜索引擎等

目录
相关文章
|
缓存
web.xml中配置:通用的用户登录过滤器(SessionFilter)
web.xml中配置:通用的用户登录过滤器(SessionFilter)
248 0
|
机器人 Linux 开发工具
小白必看!入门嵌入式你需要了解这些!
【9月更文挑战第23天】在科技迅速发展的今天,嵌入式系统已广泛应用,覆盖了从智能家居到工业自动化等多个领域。本文将向你介绍嵌入式系统的基础概念,其特点,应用范围,并指导你如何掌握必要的知识和技能,包括电路基础、C语言编程、微处理器架构等,以及推荐的学习路径与方法。对于初学者来说,这是一份不错的指南。
982 1
|
网络协议 Linux 网络虚拟化
什么是 DHCP?为什么要使用它?
【8月更文挑战第4天】
9559 12
什么是 DHCP?为什么要使用它?
|
JavaScript 前端开发
详细解读checkbox的全选与反选
详细解读checkbox的全选与反选
350 0
|
机器学习/深度学习 算法 编译器
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
368 0
|
机器学习/深度学习 人工智能 安全
人工智能时代,网络安全公司F5如何提高防护效能?
人工智能时代,网络安全公司F5如何提高防护效能?
380 0
|
存储 安全 Java
Spring Security中Token存储与会话管理:解析与实践
Spring Security中Token存储与会话管理:解析与实践
952 0
|
机器学习/深度学习
时间序列预测模型之LSTM CNN+LSTM 单步 多步 输入输出 详细代码教程
时间序列预测模型之LSTM CNN+LSTM 单步 多步 输入输出 详细代码教程
679 0
|
存储 人工智能 搜索推荐
探索向量数据库 | 重新定义数据存储与分析
向量数据库就是一种专门用于处理和查询向量数据的数据库,与传统数据库以表格形式组织和存储数据不同,向量数据库采用多维数值数组的形式处理和存储数据。其主要目标支持高效的向量相似性搜索和查询。
2178 1