Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构 v3 r819
2017-08-20 11:48
639 查看
Atitit.数据索引 的种类以及原理实现机制
索引常用的存储结构 v3 r819
1. 索引的分类 1
1.1. 按照存储结构划分btree,hash,bitmap,fulltext,摘要索引 1
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和blockmap 3
1.11. 聚集索引和非聚集索引 4
2. 索引建立,更新的流程使用触发更新索引的事件 4
3. ISAM算法 索引顺序存取方法”(Indexed Sequential Access Method) 索引常用的存储结构 B树文件 叫做“,缩写为。
5
4. 索引文件的合并问题 5
5. 参考 5
全文索引
Norma
Hash 索引(编号索引)
l
一种是分块》分块类型。。一种是不分块,编号顺序排列类型
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.9. 多级索引 vs
B+树索引结构就是多级索引结构中的一种,因其较快的查询速度,在文件系统中广泛用作建立索引。且其能在插入或删除数据时(虽然这两个过程非常复杂,但是对磁盘块I/0次数少,可以接受),保持器执行效率
再谈extent方式,用于ntfs、Vxfs、jfs、ext4等文件系统。其实现方式和blockmap不同的是,索引是按分配的片断记录,只记起始块、连续块数、及文件内部块位置(NTFS叫VCN的东东
果这个文件分配时是连续分配的,只需记录3个数字:(文件内部块号:0,文件系统分配起始块:x,连续块数:1024),不再需要1024个索引空间来描述。当然,如果这个文件有多个碎片组成,则需要多条记录来实现。
extent其优点是索引空间占有率较少,连续读写时会有优势,但缺点是算法复杂度略高。比如一个文件由100个片断(碎片)组成,需要定位到文件内部10M的偏移,则需要二叉查找属于哪个片断,再根据片断的起始地址计算到具体的分配块地址,才可以把数据读出来。如果像NTFS一样,片断本身都由变长方式实现,则内核判断上就更麻烦,文件系统崩溃的可能性也就很大了。
以个人来看,纯粹的blockmap方式,在现在文件都很大的应用环境下,稍显不太适应,慢慢的应用会越来越少。而类似ntfs的变长extent记录方式,则感觉有点得不偿失,这似乎和微软不考虑性能,不考虑健壮性,只考虑功能实现的理念相吻合。
非聚集索引
一种索引,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。
说明索引是类似与触发器,每增加一条记录触发一次创建立索引的流程
3. ISAM算法 索引顺序存取方法”(Indexed
所谓索引,就是以某个字段为关键字的B树文件。假定有一张”雇员表”,包含了员工号(主键)和姓名两个字段。可以对姓名建立索引文件,该文件以B树格式对姓名进行储存,每个姓名后面是其在数据库中的位置(即第几条记录)。查找姓名的时候,先从索引中找到对应第几条记录,然后再从表格中读取。
这种索引查找方法,叫做“索引顺序存取方法”(Indexed Sequential
Access Method),缩写为ISAM。它已经有多种实现(比如C-ISAM库和D-ISAM库),只要使用这些代码库,就能自己写一个最简单的数据库。
或者使用2进制方式增量存储..
字典树_百度百科.htm (有代码实现
Atitit.数据索引 的种类以及原理实现机制
Atitit.索引的种类
文件系统中的索引:B+树索引结构 - 莫语的日志 - 网易博客.html
聚集索引和非聚集索引(整理) - 布颜书 - 博客园.mhtml
作者::
绰号:老哇的爪子claw of Eagle
偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher kok 虔诚者Pious
宗教信仰捍卫者 Defender Of the Faith.
卡拉卡拉红斗篷 Caracalla red cloak
万兽之王 纵火者
简称:: Emir Attilax Akbar
埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui
埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke交友协会会长 uke捕猎协会会长
Emir Uke部落首席大酋长,
uke宗教与文化融合事务部部长, uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke机车协会主任 uke纹身协会
uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任
Uke图像处理与机器视觉学院首席院长
Uke 户外运动协会理事长 度假村首席大村长 uke出版社编辑总编
UTSC uke技术标准化委员会委员长 uke
首席cto 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理 uke科技研究院院长
uke软件培训大师
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke
数据库与存储标准化协会副会长
uke终身教育学校副校长 Uke医院 与医学院方面的创始人
转载请注明来源:attilax的专栏 http://blog.csdn.net/attilax
http://www.cnblogs.com/attilax/
Microblog
http://weibo.com/u/5941179815 (common attilax)
https://weibo.com/p/1005055941179815 (attilax201707,bek weibo)
http://weibo.com/u/5487832265 (tech,for blog auto gene)
Qq 1466519819 微信attilax
--Atiend v13
索引常用的存储结构 v3 r819
1. 索引的分类 1
1.1. 按照存储结构划分btree,hash,bitmap,fulltext,摘要索引 1
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和blockmap 3
1.11. 聚集索引和非聚集索引 4
2. 索引建立,更新的流程使用触发更新索引的事件 4
3. ISAM算法 索引顺序存取方法”(Indexed Sequential Access Method) 索引常用的存储结构 B树文件 叫做“,缩写为。
5
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记录方式,则感觉有点得不偿失,这似乎和微软不考虑性能,不考虑健壮性,只考虑功能实现的理念相吻合。
1.11. 聚集索引和非聚集索引
一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序非聚集索引
一种索引,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。
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
聚集索引和非聚集索引(整理) - 布颜书 - 博客园.mhtml
作者::
绰号:老哇的爪子claw of Eagle
偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher kok 虔诚者Pious
宗教信仰捍卫者 Defender Of the Faith.
卡拉卡拉红斗篷 Caracalla red cloak
万兽之王 纵火者
简称:: Emir Attilax Akbar
埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui
埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke交友协会会长 uke捕猎协会会长
Emir Uke部落首席大酋长,
uke宗教与文化融合事务部部长, uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
uke机车协会主任 uke纹身协会
uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任
Uke图像处理与机器视觉学院首席院长
Uke 户外运动协会理事长 度假村首席大村长 uke出版社编辑总编
UTSC uke技术标准化委员会委员长 uke
首席cto 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理 uke科技研究院院长
uke软件培训大师
uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke
数据库与存储标准化协会副会长
uke终身教育学校副校长 Uke医院 与医学院方面的创始人
转载请注明来源:attilax的专栏 http://blog.csdn.net/attilax
http://www.cnblogs.com/attilax/
Microblog
http://weibo.com/u/5941179815 (common attilax)
https://weibo.com/p/1005055941179815 (attilax201707,bek weibo)
http://weibo.com/u/5487832265 (tech,for blog auto gene)
Qq 1466519819 微信attilax
--Atiend v13
相关文章推荐
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
- 牛客网Java刷题知识点之HashMap的实现原理、HashMap的存储结构、HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响
- C++学习总结——顺序存储,链式存储,索引存储,哈希存储的优缺点,以及vector数组,list链表,十字链表,索引结构,hash表的实现
- 数据结构 — 浅析红黑树原理以及实现
- 【源码学习】ThreadLocal 实现原理以及其内部存储结构(神奇的1640531527)
- C#实现二叉树数据结构以及先序、中序、后续遍历
- 单链表数据存储结构(c语言实现)
- 简单谈一点linux内核中套接字的bind机制--数据结构以及端口确定
- 数据结构之线性表顺序存储的常用操作(转载)
- 十亿级别规模KV型数据持久性存储引擎:Leveldb实现原理
- 在SQL Server中巧妙存储树形结构数据及ASP.Net javaScript无刷新树形GridView的实现
- 实现主附表结构的数据存储
- 细谈数据类型以及计算机存储数据机制(一)
- Java数据结构之双端链表原理与实现方法
- 套接字的内核实现原理以及对数据的处理流程简述
- 使用PLSQL Developer来实现不同数据库的表结构以及表数据同步