`

关于数据库反向索引

 
阅读更多
反向索引与平时的常用索引不同的是,它将要增加索引的列的数据按字节颠倒(相当于reverse) 存放,比如要存的数据为:

12345
12346
12347
12348

反转为:

54321
64321
74321
84321

这样存的好处是:解决树的倾斜问题,而且可以解决在大量IO操作的情况下,防止硬盘在某个区域操作过于频繁,引起"热点"问题。

不适用的情况:范围查询。

适用的情况:数据是按顺序增长,如ID等。

名词解释:

树的分支:因为索引一般是按树这个数据结构来组织,所以有很多分支,把不同类别或范围的数据存放在分支里,在符合条件的分支里查询比在全表查询效率高很多。

树的倾斜:树的某个分支过与庞大,而其他分支内容却很少,这样的索引非常不健康的,查询速度也很慢,如上面的示例数据,都在10000-20000的分支,而20000-30000或者以上的分支是空的。反转后把这些数据均匀分布到不同的分支,可以使索引更加健康,也更有效率。

热点问题:由于系统在表数据的增删改查的同时,同时要承担索引开支,而这主要是硬盘的IO操作,如果树是倾斜的,而且数据的增加是按一定顺序增长的,这种情况会导致硬盘对某一固定区域操作频繁,会出现热点问题,而且出现瓶颈。
分享到:
评论

相关推荐

    数据库反向生成基础代码

    数据库反向生成基础代码是指通过特定工具或技术从已有的数据库结构中自动生成相应的应用程序代码,这大大减少了开发人员手动编写数据访问层的工作量。在软件开发过程中,尤其是在大型项目中,这种自动化过程能提高...

    数据库-豆瓣读书数据库反向设计-学习

    在本项目中,我们主要关注的是“数据库-豆瓣读书数据库反向设计-学习”这一主题。这个主题涉及到了数据库的设计与实现,以及与前端开发的交互。从提供的压缩包文件内容来看,我们可以深入探讨以下几个关键知识点: ...

    visio 如何反向连接数据库生成er图

    Visio 反向连接 Oracle 数据库生成 ER 图 Visio 是一款功能强大的绘图软件,广泛应用于各种领域,包括数据库设计、软件设计、网络设计等。在数据库设计领域,Visio 可以通过反向连接数据库,生成 ER 图,从而帮助...

    基于Oracle数据库索引的查询优化研究.pdf

    在Oracle实时应用集群中,尤其是在值连续增长的列上,反向索引表现出色。 2.3 位图索引 位图索引适用于列值较少的情况,它为每个可能的列值创建一个位图,使用位元表示对应行是否包含该值。位图索引能够节省空间,...

    论文研究-基于MySQL和Lucene的反向索引系统的实时性能比较研究 .pdf

    整体而言,该研究展示了如何结合MySQL数据库的高效数据处理能力和定制化的MD5哈希优化技术,来构建一个更适合实现实时搜索功能的倒排索引系统。对于那些寻求提高搜索引擎实时索引性能的应用开发者和企业来说,本文...

    基于Cassandra的可扩展分布式反向索引的构建.pdf

    文章中提到的分布式反向索引(Distributed Inverted Index, DII)是指在分布式系统中构建的反向索引,它和传统的关系型数据库中的反向索引不同,能够应对大规模数据和高并发请求。在分布式环境下,数据会被分散存储...

    大数据-算法-空间数据库反向最近邻查询技术研究.pdf

    【空间数据库反向最近邻查询技术研究】 空间数据库反向最近邻查询(Reverse Nearest Neighbor,简称RNN)是大数据领域中的一种重要算法,尤其在地理信息系统、智能交通、推荐系统等领域有着广泛应用。RNN查询的目标...

    Oracle数据库中的索引管理技术.pdf

    Oracle数据库中的索引管理技术 索引是 Oracle 数据库中的一个重要对象,它可以大大提高数据库中的数据检索速度。索引是包含表中选定字段的信息的对象,这些信息以某种规律排序,有一个指针指向存放实际数据的记录。...

    IndexerDemo:用于处理反向索引的 Java 代码

    在IT领域,尤其是在数据检索和搜索引擎技术中,反向索引是一种非常重要的概念。这个名为"IndexerDemo"的项目是用Java语言实现的一个反向索引处理示例,可以帮助我们深入理解反向索引的工作原理及其在实际应用中的...

    倒排索引引擎

    数据库索引

    数据库逆向工程,根据数据库表生成数据字典.zip

    PDMReader是一款能够读取和展示PDM文件的应用程序,通过它,我们可以查看数据库的表、视图、索引、约束等信息。双击PDM文件后,工具会显示模型的详细内容,接着导出为DOC文档形式的数据字典,便于团队共享和文档化。...

    数据库索引 分区 查询优化.ppt

    另一方面,反向键索引是键值顺序相反的索引,主要用于节省存储空间或优化某些类型的查询。位图索引则在基数低(独特值较少)的列上特别有效,它使用位图来表示每个值的存在,对于涉及多个OR条件的查询非常高效,但...

    详解Oracle数据库中文全文索引.docx

    5. 索引引擎提取词法分析器中的所有标记、文档段在分段器中的偏移量以及被称为非索引字的低信息含量字列表,并构建反向索引。 使用Oracle Text需要具有CTXAPP角色或者是CTXSYS用户。具有CTXAPP角色的用户可执行以下...

    充分利用索引作用提高Oracle数据库的性能.pdf

    - **反向索引**:用于减少并行环境中的索引竞争,通过反转B*Tree索引键值来实现。 - **降序索引**:与B*Tree索引类似,但数据按降序排列,适用于需要降序查询的场景。 - **位图索引**:适用于决策支持系统和静态数据...

    python 实现倒排索引的方法

    倒排索引(Inverted Index),又称为反向索引或逆向索引,是一种用于快速查询文档集合中包含特定词语的文档的技术。传统的正向索引是根据文档来建立索引,而倒排索引则是根据词汇来建立索引,每个词条指向包含该词条...

    powerdesign数据库[SqlServer2005]反向表,并生成RTF文档

    在数据库开发过程中,反向工程是一项重要的功能,它可以将已存在的数据库结构转换为模型,便于理解、修改和优化。在本场景中,我们将详细探讨如何使用 PowerDesigner 完成对 SQL Server 2005 数据库的反向工程,并...

    Oracle索引分析与比较

    本篇文章将深入探讨Oracle中的B*Tree索引、反向索引、降序索引、位图索引和函数索引。 1. **B*Tree索引**: - B*Tree索引是Oracle中最常见的索引类型,其结构类似于二叉树,可以高效地处理高基数数据列,即具有...

    oracle rac环境下索引热块的处理思路

    Oracle RAC 环境下索引热块的处理思路...在 Oracle RAC 环境下,索引热块争用的处理思路需要考虑到多实例并发 insert 表和多实例并发查询导致的索引热块争用,并 采用反向索引和按实例分区表等方法来缓解索引热块争用。

Global site tag (gtag.js) - Google Analytics