博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
阅读量:5989 次
发布时间:2019-06-20

本文共 1804 字,大约阅读时间需要 6 分钟。

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

 

 

1索引的分类1

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

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

1.3. 单列索引与多列索引2

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

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

3索引常用的存储结构 B树文件 叫做索引顺序存取方法Indexed Sequential Access Method),缩写为ISAM2

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

5索引文件的合并问题4

6参考4

 

 

 

1. 索引的分类

Uniq

全文索引

Norma

Hash 索引(编号索引)

l

 

 

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

 

 

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

 

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

倒排索引

 

1.3. 单列索引与多列索引

 

1.4. 

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax akbar al rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

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

 

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

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

 

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

 

 

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

 

 

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

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

4.  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)每个节点的所有子节点包含的字符串不相同。

 

 

5. 索引文件的合并问题

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

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

 

6. 参考

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

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

 

你可能感兴趣的文章
ARM和闪存区别
查看>>
Solr4.7---synonyms
查看>>
SQLSTATE[HY000] [2003] Can't connect to MySQL serv
查看>>
依然计时
查看>>
利用BusyBox定制Linux Live CD
查看>>
mysql分区功能详细介绍,以及实例
查看>>
RHCE培训笔记之Vim的使用
查看>>
ra layer request failed could not connect to serv
查看>>
angular 之 $q
查看>>
Jersey2.x框架搭建简单的Restful API
查看>>
eclipse 关闭js自动完成提示
查看>>
sqlserver創建使用觸發器
查看>>
线程新建
查看>>
response.setCharacter和request.setCharacterEncoding详解
查看>>
创业三问
查看>>
纪念死去的手机
查看>>
关于selenium IDE找不到元素
查看>>
iOS多线程之NSThread
查看>>
spring boot框架学习1-认识spring boot和快速入门
查看>>
Ubuntu14.04下编译安装Vim74+Vim-gdb
查看>>