paip.索引的种类以及实现attilax 总结
paip.索引的种类以及实现attilax 总结
1. 索引的类型 1
2. Btree索引(分块索引) 1
3. Hash 索引(编号索引) 1
4. 倒排索引 2
5. 对大型文本文件做索引 2
6. 索引文件的合并问题 2
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
1. 索引的类型
按查找方式分,两种,一种是分块》分块类型。。
一种是不分块,编号顺序排列类型
2. Btree索引(分块索引)
B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点,,需要这样多次的io访问
常见的Btree索引:
书籍的分类索引,就是一种Btree索引..把每一大类分成若干小类,按你的分类详细程度一级一级分下去,在整理出来就行了...
字典的部首查字法
字典的笔画查字法
许多数据库默认的建立的索引也是B-Tree 索引
我们整理家庭物品时,按分类分箱装纳,这中索引也是属于Btree索引
3. Hash 索引(编号索引)
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位
常见Hash 索引的实现:
字典的拼音索引,也是属于Hash 索引
四角号码查字法
书籍中的大事记表等应该是属于HASH索引。。
我们整理家庭物品时,将其编号存放,属于HASH索引。
数据库默认btree索引,也能建立Hash 索引
4. 倒排索引
全文索引,以及书籍中的人物名称索引都是倒排索引
5. 对大型文本文件做索引
有时候,需要快速寻找时候,需要对大型文本文件做索引,一般,来说, 普通PC机器上,单核cpu 2.8g, 当文件大于3W行的时候,使用JAVA,顺序扫描的时间就需要10s了,应该是需要做索引了...当然,要是使用C++,性能会有10倍以上的提升,可以大于30W行时再做索引。。
要是是多核cpu, 根据cpu数量,也能可以大幅度的提升性能..2个cpu核可以大概提升2倍,4个核4倍,以此类推..
根据文本的类型,以及特点,可以做Btree索引/HASH索引,有时候可能也需要做倒排索引
使用TREEMAP, HASHMAP等等结构 先扫描文件,然后序列化,保存为索引文件...
6. 索引文件的合并问题
当索引文件越来越大时候,就需要分布式存储在多个增量索引文件上..到时合并或者不合并.....
或者使用2进制方式增量存储..
paip.索引的种类以及实现attilax 总结相关推荐
- Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构 1. 索引的分类1 1.1. 索引的类型 按查找方式分,两种,分块索引 vs编号索引1 1.2. 按索引与数据的查找顺序可分为 正 ...
- mysql索引的种类
索引种类 普通索引: 仅加速查询 唯一索引:加速查询+列值唯一,不为NULL 主键索引:加速查询+列值唯一,一个表中只能有一个主键 组合索引:多个列值组合成一个索引,专门用于组合查询,速度大于索引合并 ...
- Oracle索引梳理系列(二)- Oracle索引种类及B树索引
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Atitit 最近资料文章列表r9 r8 月份 attilax总结
Atitit 最近资料文章列表r9 r8 月份 attilax总结 atitit tag标签标示规范 attilax总结 v2 r922.docx 2017-09-28 02:04 阅读(27) ...
- mysql 树形结构_再读MySQL索引-《高性能MySQL》索引手记
最近工作中经常和MySQL打交道,当数据量小的时候,不同查询方式以及是否使用索引并无大碍,当数据量随着业务的成长急剧加速时,索引的重要性不言而喻. 本篇文章以<高性能MySQL>中的索引章 ...
- 助你进大厂,这些Mysql索引底层知识你是必须知道的。
前言 上一篇总结了Mysql的锁机制,通过读者的反映和阅读量显示,总体还是不错的,感兴趣的可以阅读一下[大厂面试官必问的Mysql锁机制]. 写了那么多的Mysql文章,有读者问我是不是dba,工作真 ...
- paip.按键替换映射总结
paip.按键替换映射总结 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/attilax 因为 ...
- sql server修改索引名称_【索引潜规则】覆盖索引、ICP、MRR详解
点击上方蓝色字体,关注我们 上篇文章我们说了创建索引的方法,有聚簇索引.辅助索引.前缀索引.联合索引等,也说了如何利用索引的排序功能,接着本篇文章主要来说一说索引的几种优化策略,首先我们先说下回表的概 ...
- (转)HBase二级索引与Join
二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性.RDBMS支持得比较好,NOSQL阵营也在摸索着符合自身特点的最佳解决方案. 这篇文章会以HBase做为对象来探讨如何基于Hba ...
- Atitit.注册跟个登录功能的实现attilax总结obo
Atitit.注册跟个登录功能的实现attilax总结obo 1. 注册模块 2 1.1. 基本注册功能(用户名方式) 2 1.2. 动态ajax监测用户名重复 2 1.3. 注册手机验证 2 1.4 ...
最新文章
- 创建模块化程序(二)
- DirectX和DirectShow介绍和区别
- ARM的流水线与PC值的关系
- .Net Micro Framework SDK 2.5 发布
- P2151 [SDOI2009]HH去散步
- 多媒体视频知识入门贴zt(二)
- dubbo服务提供与消费
- (139)FPGA面试题-FPGA设计中的速度和面积互换原则
- 一份招聘需求的分析 (转载)
- android7.0电话录音,芒果录音手机版-芒果通话录音app(电话通话录音软件)下载7.3.2官方安卓版-西西软件下载...
- 用友U8修改货位现存量
- Using insecure protocols with repositories(已解决)
- 浪潮之巅--苹果的魔力
- 关于python数字的一种下划线奇怪写法
- 【论文发表】认识SCI、EI、ISTP、IEEE等和算法论文
- “XXX程序包不存在”解决方法
- AXD 在win7 vista下 启动失败
- 佛罗里达大学计算机科学专业排名,2019年南佛罗里达大学计算机科学专业排名情况如何?...
- file上传代码 ios_iOS-实现文件上传下载
- 电商项目:拼团活动设计及表结构设计
热门文章
- 使用sed在文件中定位文本的方式
- oracle导入和导出遇到may be an original export dump file的问题
- PHP 多维数组转换一维数组
- MVC中关于JSON的处理
- (76) Clojure: Why would someone learn Clojure? - Quora
- 通过python和websocket构建实时通信系统[扩展saltstack监控]
- Appfuse实践(一)——配置安装 转自http://www.donews.net/skyhero/archive/2004/12/17/205662.aspx...
- Java-数据库连接池第一篇
- django 之模板层
- BZOJ4602: [Sdoi2016]齿轮(并查集 启发式合并)