• 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数量,也能可以大幅度的提升性能..2cpu核可以大概提升2,4个核4,以此类推..

    根据文本的类型,以及特点,可以做Btree索引/HASH索引,有时候可能也需要做倒排索引

    使用TREEMAP, HASHMAP等等结构 先扫描文件,然后序列化,保存为索引文件...

    6. 索引文件的合并问题

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

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

     

     

  • 相关阅读:
    常见的五种App开发模式
    iOS提供的实用的属性和方法
    iOS开发思想
    iOS函数式编程
    iOS链式编程范例
    ios不起眼的错误
    iOS将汉字转成拼音
    ReactiveCocoa
    LuaViewSDK
    pycharm配置qtdesigner
  • 原文地址:https://www.cnblogs.com/attilax/p/15199410.html
Copyright © 2020-2023  润新知