Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构

1. 索引的分类1

1.1. 按照存储结构划分btree,hash,bitmap,fulltext1

1.2. 索引的类型  按查找方式分,两种,分块索引 vs编号索引1

1.3. 顺序索引  vs 散列索引2

1.4. 按索引与数据的查找顺序可分为 正排与倒排索引2

1.5. 单列索引与多列索引 复合索引2

1.6. 分区索引和全局索引 2

1.7.  Trie树一般指字典树 又称单词查找树,Trie树2

1.8. 稠密索引 vs 稀疏索引3

1.9. 多级索引 vs 单击索引3

1.10. 索引模式extent和blockmap3

2. 索引建立,更新的流程使用触发更新索引的事件4

3. ISAM算法 索引顺序存取方法”(Indexed Sequential Access Method) 索引常用的存储结构 B树文件 叫做“,缩写为。4

4. 索引文件的合并问题5

5. 参考5

1. 索引的分类

Uniq

全文索引

Norma

Hash 索引(编号索引)

l

1.1. 按照存储结构划分btree,hash,bitmap,fulltext

1.2. 索引的类型  按查找方式分,两种,分块索引 vs编号索引

一种是分块》分块类型。。一种是不分块,编号顺序排列类型

1.3. 顺序索引  vs 散列索引

1.4. 按索引与数据的查找顺序可分为 正排与倒排索引

倒排索引

1.5. 单列索引与多列索引 复合索引

1.6. 分区索引和全局索引

1.7.  Trie树一般指字典树 又称单词查找树,Trie树

Trie树一般指字典树 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计

。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。

Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。

Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”。

Trie树可以利用字符串的公共前缀来节约存储空间。如下图所示,该trie树用10个节点保存了6个字符串tea,ten,to,in,inn,int:

在该trie树中,字符串in,inn和int的公共前缀是“in”,因此可以只存储一份“in”以节省空间。当然,如果系统中存在大量字符串且这些字符串基本没有公共前缀,则相应的trie树将非常消耗内存,这也是trie树的一个缺点。

Trie树的基本性质可以归纳为:

(1)根节点不包含字符,除根节点意外每个节点只包含一个字符。

(2)从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。

(3)每个节点的所有子节点包含的字符串不相同。

1.8. 稠密索引 vs 稀疏索引

稠密索引:文件中的每个搜索码值都有一个索引项。

稀疏索引:只为搜索码中的某些值建立索引项

1.9. 多级索引 vs 单击索引

B+树索引结构就是多级索引结构中的一种,因其较快的查询速度,在文件系统中广泛用作建立索引。且其能在插入或删除数据时(虽然这两个过程非常复杂,但是对磁盘块I/0次数少,可以接受),保持器执行效率

1.10. 索引模式extent和blockmap

先说blockmap,这是用在ufs、sco htfs、ext2/3、reiserfs上的索引模式,意思是每个文件的分配块都有一个索引与之对应,是一对一的索引关系

再谈extent方式,用于ntfs、Vxfs、jfs、ext4等文件系统。其实现方式和blockmap不同的是,索引是按分配的片断记录,只记起始块、连续块数、及文件内部块位置(NTFS叫VCN的东东

果这个文件分配时是连续分配的,只需记录3个数字:(文件内部块号:0,文件系统分配起始块:x,连续块数:1024),不再需要1024个索引空间来描述。当然,如果这个文件有多个碎片组成,则需要多条记录来实现。

extent其优点是索引空间占有率较少,连续读写时会有优势,但缺点是算法复杂度略高。比如一个文件由100个片断(碎片)组成,需要定位到文件内部10M的偏移,则需要二叉查找属于哪个片断,再根据片断的起始地址计算到具体的分配块地址,才可以把数据读出来。如果像NTFS一样,片断本身都由变长方式实现,则内核判断上就更麻烦,文件系统崩溃的可能性也就很大了。

以个人来看,纯粹的blockmap方式,在现在文件都很大的应用环境下,稍显不太适应,慢慢的应用会越来越少。而类似ntfs的变长extent记录方式,则感觉有点得不偿失,这似乎和微软不考虑性能,不考虑健壮性,只考虑功能实现的理念相吻合。

2. 索引建立,更新的流程使用触发更新索引的事件

1 大量数据插入的时候,考虑先删除索引,然后重建索引。这样做的缺点是业务不能同时进行

说明索引是类似与触发器,每增加一条记录触发一次创建立索引的流程

3. ISAM算法 索引顺序存取方法”(Indexed Sequential Access Method) 索引常用的存储结构 B树文件 叫做“,缩写为。

所谓索引,就是以某个字段为关键字的B树文件。假定有一张”雇员表”,包含了员工号(主键)和姓名两个字段。可以对姓名建立索引文件,该文件以B树格式对姓名进行储存,每个姓名后面是其在数据库中的位置(即第几条记录)。查找姓名的时候,先从索引中找到对应第几条记录,然后再从表格中读取。

这种索引查找方法,叫做“索引顺序存取方法”(Indexed Sequential Access Method),缩写为ISAM。它已经有多种实现(比如C-ISAM库和D-ISAM库),只要使用这些代码库,就能自己写一个最简单的数据库。

4. 索引文件的合并问题

当索引文件越来越大时候,就需要分布式存储在多个增量索引文件上..到时合并或者不合并.....

或者使用2进制方式增量存储..

5. 参考

paip.索引的种类以及实现attilax 总结 - attilax的专栏 - 博客频道 - CSDN.NET.htm

字典树_百度百科.htm  (有代码实现

Atitit.数据索引 的种类以及原理实现机制

Atitit.索引的种类

文件系统中的索引:B+树索引结构 - 莫语的日志 - 网易博客.html

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon Al Rapanui

埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门  阿尔 拉帕努伊

常用名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

头衔:uke总部o2o负责人,全球网格化项目创始人,uke宗教与文化融合事务部部长,Uke部落首席大酋长,uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,奶牛科技cto ,uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

转载请注明来源:attilax的专栏   http://blog.csdn.net/attilax

--Atiend

Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构相关推荐

  1. Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构

    Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构 1. 索引的分类1 1.1. 索引的类型  按查找方式分,两种,分块索引 vs编号索引1 1.2. 按索引与数据的查找顺序可分为 正 ...

  2. 好文力荐 | MySQL 索引、B+树原理以及建索引的几大原则

    作者:小宝鸽 blog.csdn.net/u013142781/article/details/51706790 MYSQL一直了解得都不多,之前写sql准备提交生产环境之前的时候,老员工帮我检查了下 ...

  3. 【转】2.3【MySQL】运行原理(三)InnoDB 逻辑存储结构

    MySQL的存储结构分为5级:表空间.段.簇.页.行. 1.表空间 TableSpace 上篇[MySQL]从InnoDB的内存结构.磁盘结构到update sql执行过程分析 在磁盘结构部分就说过了 ...

  4. 数据的逻辑结构(线性结构、非线性结构;集合结构、树状结构、网状结构),数据的存储结构(顺序结构、链式结构、索引结构、散列结构)

    数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑关系(和实现无关). 分类1:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继. ...

  5. 数据的逻辑结构(线性结构、非线性结构;集合结构、线性结构、树状结构、网状结构),数据的存储结构(顺序结构、链式结构、索引结构、散列结构)

    数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑关系(和实现无关). 分类1:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继. ...

  6. Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle...

    Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3.  ...

  7. mysql 大量数据 更改索引_一文看懂ICP原理--MySQL用索引去表里取数据的一种优化...

    概述 今天主要介绍一下mysql的ICP特性,可能很多人都没听过,这里用一个实验来帮助大家加深一下理解. 一.Index_Condition_Pushdown Index Condition Push ...

  8. 《MYSQL是怎样运行的》笔记|配置文件|系统变量|字符集|InnoDB存储结构|数据页结构|索引结构与使用|数据目录|表空间|连表原理|查询优化|BufferPool|事务|redo与undo|锁

    <MYSQL是怎样运行的>笔记 前记: 历时15天,笔记+看书.完成于2022.2.5. 本书是讲具体的数据库实现,而数据库系统概念见:https://blog.csdn.net/qq_4 ...

  9. MySQL 数据存储和优化------MySQL架构原理 ---- (架构---索引---事务---锁---集群---性能---分库分表---实战---运维)持续更新

    Mysql架构体系全系列文章主目录(进不去说明还没写完)https://blog.csdn.net/grd_java/article/details/123033016 本文只是整个系列笔记的第一章: ...

  10. solr 从数据库导入数据,全量索引和增量索引(实例配置原理)

    http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...

最新文章

  1. boost::mpl模块实现reverse相关的测试程序
  2. 43. Multiply Strings 字符串相乘
  3. as it exceeds the max of 500KB._IT狂人第一季 | 如何考察员工
  4. 多功能mac代码编辑神器coderunner 4 比Xcode都强大
  5. 07_支持向量机3_统计学习方法
  6. c 本地html解析,使用selenium解析本地HTML文件方法
  7. Ubuntu18.04+Halcon18.11安装教程
  8. 解决CentOS6.4 Docker “Couldn‘t connect to Docker daemon ...“ 问题
  9. OFD格式及OFD阅读器
  10. 广州“开四停四”交通限行,技术上是如何实现的?
  11. Pandas学习任务1-3
  12. macOS Command - softwareupdate
  13. android 模拟xp,使用Bochs模拟器瞬间安卓变XP教程
  14. 鸿蒙系统诞生的背景,为何国产系统发展多年无人问津,华为鸿蒙系统刚一开始就引起轰动...
  15. 小程序EXcel文件下载并打开
  16. 【Javascript的基本知识——数据的流程和流程的切割】
  17. FBEC2021 | 对话阿里巴巴云游戏事业部/元境副总经理 龙志勇:坚持研运一体化服务的路线
  18. KM算法matlab实现
  19. 远指针,近指针,巨指针
  20. 京信通信成功打造自动化工厂(MES应用案例)

热门文章

  1. OpenWrt系列教程汇总 OpenWrt简体中文Wiki
  2. opencv 图片缩放
  3. TCP发送接收数据2
  4. 虚拟机无法安装VMware Tools
  5. 关键词推荐工具中的用户引导机制之三
  6. google appid申请
  7. Ubuntu 12.04下Proftpd FTP服务器配置
  8. 投票系统显示结果--jQuery插件
  9. 论文阅读笔记——个体识别研究中的计算机辅助照片匹配:以塞伦盖蒂猎豹为例
  10. Java Web - 笔记(1)