`
daqing15
  • 浏览: 40893 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库索引的关注

阅读更多

数据库索引的关注

 

索引的概念,索引是一个单独的、物理的数据库库结构,是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。

 

表存储的组成

一部分来存放数据页面,另一部分存放索引页面。通常索引页面小很多。

数据检索的方式:当你向 RDMS 提出查询某个表的 SQL 时,就要进行数据检索,我们表面上是操作数据库,但是,实际上我们还是要进行磁盘读写,所以就会有 IO 操作,而真正花费的时间也在 IO 读写上。

但是,对于一个数据表来说,索引对查询速度是至关重要的,最起码,索引用得好,数据检索时间就大大减低,提高查询效率。

当你要查询的目标表没有建立索引,就需要从磁盘上读表的每一个数据页,若存在索引,则只需查找索引页面的就 ok 了。

 

索引的数据结构

常见的数据库系统,构成索引的数据结构多是 B -Tree 或者 B+Tree

Example

Oracle B-Tree MSSQL B+Tree

索引的存储,一条索引记录中包含的基本信息包括:

键值:定义索引时制定的所有字段值。

逻辑指针:指向数据页或另一索引页

 

索引的类型

A) 聚集索引,表数据按照索引的顺序来存储。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。

B) 非聚集索引,表数据存储顺序与索引无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,该层紧邻数据页,其行数量与数据表行数据量一致。

 

在一张表上只能创建一个聚集索引,因为真实数据的物理顺序只可能是一种。

 

 

索引的好处

A)索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。

B)对于非聚集索引,有些查询甚至可以不访问数据页。

C)聚集索引可以避免数据插入操作集中于表的最后一个数据页。

D)一些情况下,索引还可用于避免排序操作。

注:需要经常更新的数据,进行更新时,同时也要更新索引(造成性能下降)

 

2
0
分享到:
评论

相关推荐

    oracle,数据库索引

    【数据库索引】是数据库管理系统中用于加速数据检索的一种数据结构。索引好比书籍的目录,能够快速定位到所需的数据行。根据物理存储方式,索引分为【聚簇索引】和【非聚簇索引】。聚簇索引是按照数据的实际存储顺序...

    Oracle数据库中索引的维护

    本文主要关注Oracle8i版本中的B-tree索引维护。 首先,我们需要了解如何查看系统表中的用户索引。在Oracle中,SYSTEM表包含了大量的系统信息,但将非SYSTEM用户的对象存储在这里并不理想,因为这可能导致数据库管理...

    空间数据库的索引技术

    本文深入探讨了空间数据库索引技术的重要性及其最新进展,特别关注了四种广为采用的空间索引方法:R树、K-D树、Quad树和GiST。 #### 一、空间数据库的特点及挑战 空间数据库存储和管理具有空间属性的数据,如地理...

    MySQL数据库索引优化

    MySQL数据库索引优化是数据库管理员和开发人员在提升数据库性能方面的一个关键点,涉及BTree索引和Hash索引以及索引优化的策略。索引是数据库中一种非常重要的数据结构,它能够大幅提升查询的效率,但也需要恰当的...

    关于数据库索引的理解(实践总结)

    数据库索引是数据库管理系统中用于提高查询速度的重要数据结构。在理解索引的工作原理和应用场景时,我们需要关注其对查询性能、存储空间以及更新操作的影响。以下是对复合索引、非复合索引以及不同场景下索引使用...

    数据库索引与优化技术.pptx

    ### 数据库索引与优化技术 #### 数据库索引概述 数据库索引是提高查询性能的关键技术之一。它通过创建额外的数据结构来加速数据检索过程。索引的主要目的是减少磁盘I/O操作次数,从而加快查询速度。在现代数据库...

    数据库锁和索引实验

    接下来,我们关注索引,特别是B*树索引。B*树是一种高效的数据结构,常用于数据库的索引。它能快速定位到数据,降低查询的复杂度,提高数据访问速度。实验中,我们将创建B*树索引,并比较使用索引前后的查询性能。...

    数据库索引概论及详解.docx

    数据库索引是数据库管理系统中用于快速查找记录的一种数据结构,它的主要作用是提高数据查询的效率。索引能够帮助数据库系统更快地定位到所需的数据行,但并非所有情况下都适合使用索引,因为维护索引也会带来额外的...

    基于Hadoop的分布式SQL数据库索引设计与实践.pdf

    本文讨论了在分布式系统中如何设计和实现有效的数据库索引,以支持海量数据的高效访问。文章基于Hadoop分布式文件系统(DFS),提出了一个分层的分布式索引结构,该结构包括全局索引、局部索引和数据分片三层。通过...

    数据库索引原理

    数据库索引原理是数据库管理系统中不可或缺的一个概念,它极大地提高了数据检索的速度,降低了数据库查询的延迟。索引可以被比喻为书的目录,它提供了一种快速定位数据的方法,而不是逐页翻阅整个数据集。 在数据库...

    数据库设计与优化.pdf

    数据库设计是核心,良好的设计可以为后续的索引设计和高效编码打下基础。 - **规范化设计**:遵循范式原则,如第一范式(避免重复组或多值列)、第二范式(每个非主键字段依赖于整个主键)和第三范式(消除非关键...

    SQL Server数据库中索引使用和优化

    同时,要关注索引的维护成本和存储需求,以及它们如何影响插入、删除和更新操作。 在住房公积金管理系统中,例如表`p_detail`,如果查询通常涉及特定的个人属性,如员工ID或公积金贡献月份,那么在这些列上创建索引...

    数据库维护计划和索引重建

    本文将详细解释如何使用SQL Server 2008创建一个自定义的维护计划,特别关注索引的重建。 首先,我们打开SQL Server Management Studio (SSMS) 并导航到“管理”->“维护计划”。在这里,右键点击“维护计划”,...

    空间数据库索引部分手写思维导图式总结

    本篇将围绕“空间数据库索引”进行深入的总结,特别关注吴信才版教材中的相关内容。 1. **空间索引概述** 空间索引是设计来优化对空间对象查询的数据结构。它的主要目标是减少在大型空间数据集上的搜索时间,支持...

    PU-基础设置-数据库表索引设计1

    在本场景中,我们关注的是“PU-基础设置-数据库表索引设计1”,涉及了多个表及其索引设计,主要针对采购岗和计划岗的相关功能。下面将详细讨论这些表的索引设计和其在实际业务中的应用。 1. **采购岗、计划岗 po_...

    索引的存储结构与方式

    本文将深入探讨“索引的存储结构与方式”,重点关注B树这种常见的索引结构及其在数据库中的实现。 首先,我们需要理解索引的基本概念。索引就像是书籍的目录,通过创建索引,数据库系统可以快速定位到数据表中的...

    MySQL索引优化课件

    然后,我们关注索引的选择。在创建索引时,应考虑列的基数(distinct values)、查询频率以及数据分布。一般来说,选择WHERE子句中经常使用的列,尤其是连接条件和排序依据的列来创建索引。同时,避免在经常更新的列...

    关于Oracle数据库中索引的维护

    接下来,关注索引的存储情况。Oracle使用数据块、范围和段作为其逻辑存储结构。数据块是Oracle的基本存储单元,其大小在数据库创建时设定且不可更改。范围由连续的数据块组成,而段由一个或多个范围构成,包含特定...

    MySQL索引背后的数据结构及算法原理

    本文以MySQL数据库为研究对象,讨论与数据 库索引相关的一些话题。...为了避免混乱,本文将只关注 于BTree索引,因为这是平常使用MySQL时主要 打交道的索引,至于哈希索引和全文索引本文 暂不讨论。

Global site tag (gtag.js) - Google Analytics