要知道磁盘结构优化访问的关键在于以block为单位(比如每次读取一个页面)

这两种索引差别也就在聚集到一个block的标准:

B树聚集到一个block是因为关键字在一个范围内,关键字在block内的排列是有序的,而且这种有序结构是自根节点向叶节点的整体

Hash索引聚集到一个block是因为hash得到的值是一致的,通过增加一层间接索引,我们也能使得不同hash值的数据放到一个block里面,当一个block内聚集的数据太多的时候,我们可以有扩展块!

关于伴随数据的问题:

  一般B树索引的数据在叶节点,只有这样,查询一个范围内的关键字这种操作才能得到优化

  hash索引,叶节点里面也可以是指针,因为反正优化不了范围查询。

  无论那种索引,对于查询具有特点关键字值的元素都有优化的效果。

除开对于主键的索引外(也就是数据实际是按照那个组织的)

只有两种情况有较有意义的优化效果:

 1关键字几乎是键值,这样导致我按照某个给定关键字查询的时候结果项本来就很少,不用读很多block

2 实际的数据关于关键字聚集,这样我即使按照某个关键字查询的时候结果项很多,也不至于要读取太多的block(因为大家都在一块儿)

Hash索引和B树索引的更多相关文章

  1. Hash索引和B+树索引总结

    先说Hash索引 在理想的情况下,key非常分散,不存在Hash碰撞的话,采用Hash索引可以唯一得确定一个key的位置,并且这个位置上就只有一个key,所以查找时间复杂度是O(1),非常快,这是Ha ...

  2. SQL优化 MySQL版 - B树索引详讲

    SQL优化 MySQL版  - -B树索引详讲 作者:Stanley 罗昊 [转载请注明出处和署名,谢谢!] 为什么要进行SQL优化呢?很显然,当我们去写sql语句时: 1会发现性能低 2.执行时间太 ...

  3. 搞懂MySQL InnoDB B+树索引

    一.InnoDB索引 InnoDB支持以下几种索引: B+树索引 全文索引 哈希索引 本文将着重介绍B+树索引.其他两个全文索引和哈希索引只是做简单介绍一笔带过. 哈希索引是自适应的,也就是说这个不能 ...

  4. 深入研究B树索引(一)

    摘要:本文对B树索引的结构.内部管理等方面做了一个全面的介绍.同时深入探讨了一些与B树索引有关的广为流传的说法,比如删除记录对索引的影响,定期重建索引能解决许多性能问题等. 1.B树索引的相关概念 索 ...

  5. 基于R树索引的点面关系判断以及效率优化统计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的博客中,我分别介绍了基于网格的空间索引(http:// ...

  6. MySQL之B+树索引(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)

    每个索引都对应一棵B+树,B+树分为好多层,最下边一层是叶子节点,其余的是内节点.所有用户记录都存储在B+树的叶子节点,所有目录项记录都存储在内节点. InnoDB存储引擎会自动为主键(如果没有它会自 ...

  7. mysql在innodb索引下b+树的高度问题。

    B+树索引介绍 B+树索引的本质是B+树在数据库中的实现.但是B+树索引有一个特点是高扇出性,因此在数据库中,B+树的高度一般在2到3层.也就是说查找某一键值的记录,最多只需要2到3次IO开销.按磁盘 ...

  8. [转帖]B树索引和位图索引的结构介绍

    B树索引和位图索引的结构介绍 http://blog.itpub.net/12679300/viewspace-1174236/ 一  前言:? ROWID:包含键值的行的行ID,(查找块的最快方法, ...

  9. MySQL索引(一)索引基础

    索引是数据库系统里面最重要的概念之一.一句话简单来说,索引的出现其实是为了提高数据查询的效率,就像书的目录一样. 常见模型 索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,这里就介绍三种常 ...

随机推荐

  1. 【bzoj1046】上升序列

    [bzoj1046]上升序列 题意 对于一个给定的S={a1,a2,a3,-,an},若有P={ax1,ax2,ax3,-,axm},满足(x1 < x2 < - < xm)且( a ...

  2. 两端对齐(兼容较好,支持IE)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. 纯css3代码写九宫格效果

    主要用到css3中的transition和布局知识.代码如下 <!DOCTYPE html> <html lang="en"> <head> & ...

  4. hdu----(1075)What Are You Talking About(trie之查找)

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...

  5. 在汇编代码中调用C函数

    对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数 ...

  6. log4j配置文件的详解

    1.配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中,level 是日志记录的优先级,分为 ...

  7. 时间序列数据库选型——本质是列存储,B-tree索引,抑或是搜索引擎中的倒排索引

    时间序列数据库最多,使用也最广泛.一般人们谈论时间序列数据库的时候指代的就是这一类存储.按照底层技术不同可以划分为三类. 直接基于文件的简单存储:RRD Tool,Graphite Whisper.这 ...

  8. Oracle导入excel数据方法汇总[转]

    摘要:在程序编制过程和数据汇总交换过程中,经常会碰到需要将其他人员在office办公环境下编制的文件数据内容导入oracle中的情况.目前程序开发者经常使用的方法有如下几种:1,使用oracle提供的 ...

  9. [转]Visual Studio 2010 单元测试目录

    Visual Studio 2010 单元测试共分七个部分: 普通单元测试.顺序单元测试.压力测试,Generic测试.数据库测试.UI界面测试和Web性能测试. 这个系列的博客实例程序可以在下面的链 ...

  10. C#入门篇6-5:字符串操作 测试StringBuilder的运行效率

    //测试StringBuilder的运行效率 public static void Fun2() { #region string string str = "我喜欢编程!"; / ...