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

来源:互联网 发布:windows负载均衡软件 编辑:程序博客网 时间:2024/04/28 05:05

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树一般指字典树 又称单词查找树,Trie2

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

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

1.10.索引模式extentblockmap3

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. 索引模式extentblockmap

先说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

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

全名:EmirAttilax Akbar binMahmud bin  attila binSolomon Al Rapanui 

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

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

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

 

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

--Atiend

 

0 0
原创粉丝点击