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

1. 索引的分类1

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

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

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

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

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

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

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树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计

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

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  (有代码实现

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 探寻背后的机制化繁为简:网站程序升级不过是文件同步
  2. CentOS 漏洞修补
  3. 在 GridView 控件中添加一列复选框51
  4. TCP、UDP数据包大小的限制
  5. ValueError: too many values to unpack
  6. Latex+Texstudio+Texlive 2020 windows10 安装教程
  7. java代码调用python_java调用python代码-阿里云开发者社区
  8. Php global echo,php中global和$GLOBALS[]的分析之一
  9. php Tsocket read 0,thrift 返回 TSocket read 0 bytes 求助!!!!汗血宝马
  10. 第三章 SQL知识点总结
  11. 23种设计模式及其应用场景
  12. C/C++ C# unity Python 帮助文档 书籍 学习资料
  13. 程序员 开发人员 在线工具箱
  14. PHP 实现微信公众号网页授权登录
  15. 什么是生命?演讲原稿
  16. oracle 按汉字拼音顺序排序
  17. python基础----Day07
  18. 和能力匹配的目标才是战略
  19. 安卓系统双屏异显_双屏异显在Android系统上的实现
  20. Centos7 配置网卡链路聚合(转载)

热门文章

  1. 查看 Android SDK Build-tools 版本号
  2. 12C OCP 1ZO-071 题库(8月以前)
  3. 不会c语言能学习python_为什么很多人学不会C语言?学霸说:你要是像我一样学肯定能行!...
  4. python数据库操作批量sql执行_使用Python批量修改数据库执行Sql文件
  5. ajax请求php保存数据格式,jQuery ajax与php进行数据交互(数据格式问题)
  6. firefox如何不让网站登录失效_Firefox Preview 4开放下载:引入登录管理、热门网站等功能...
  7. 分布式图处理系统同步异步执行模式
  8. Linux上iptables防火墙的基本应用教程
  9. 了解JavaScript核心精髓(三)
  10. 解决Ubuntu14.04 下 E: Encountered a section with no Package: header 问题