数据库索引概论及详解

合集下载

《数据库索引》课件

《数据库索引》课件
《数据库索引》ppt课件
目录 Contents
• 引言 • 数据库索引的类型 • 数据库索引的创建与维护 • 数据库索引的性能优化 • 数据库索引的案例分析 • 总结与展望
01
引言
数据库索引的定义
数据库索引是一种数据结构,用于快 速检索数据库表中的数据。它通过创 建一个指向表中数据的指针,提高了 查询速度和数据检索效率。
唯一索引
确保索引列的唯一性,但不要求非空 。
全文索引
用于文本搜索。
控制索引的列数
单列索引
只对单个列创建索引。
多列索引
对多个列创建复合索引,但查询 时需要满足复合索引的最左前缀 原则。
避免在索引列上使用函数或运算
01
避免在索引列上使用函数或运算 ,这会导致索引失效,从而影响 查询性能。
02
例如,应避免在索引列上使用 `UPPER()`、`LOWER()`、 `TRIM()` 等函数。
定期重建和重新组织索引
随着数据的插入、更新和删除,索引可能会变得碎片化,影 响性能。
定期重建和重新组织索引可以优化性能,并保持索引的健康 状态。
05
数据库索引的案例分析
案例一:使用索引优化查询性能
总结词
通过合理使用索引,可以显著提高数据库查询性能。
详细描述
在大型数据库中,如果没有索引,查询性能可能会变得很 差。通过创建合适的索引,可以快速定位到所需的数据, 大大减少查询时间。
全文索引
总结词
用于全文搜索的索引。
详细描述
全文索引是一种特殊的索引类型,主要用于全文搜索。全文索引将文本内容拆分成多个词汇,并建立词汇与记录 之间的对应关系,通过全文索引可以快速查找到包含特定词汇的记录。全文索引在文本搜索、内容筛选等方面具 有重要作用。

什么是数据库索引有哪些类型和特点

什么是数据库索引有哪些类型和特点

什么是数据库索引有哪些类型和特点有效优化VPS性能,提⾼VPS服务器运⾏速度,除了合理配置WEB服务器外,更多的是需要我们能够很好的优化⽹站程序及⽹站数据库,⽹站数据库的优化最为基础的优化措施就是建⽴数据库索引了,这⾥就介绍⼀下,什么是数据库索引?有哪些类型和特点? ⑴,什么是数据库索引? 数据库索引是对数据库表中⼀列或多列的值进⾏排序的⼀种结构,使⽤索引可快速访问数据库表中的特定信息。

在数据库中,索引的含义与⽇常意义上的“索引”⼀词并⽆多⼤区别(想想⼩时候查字典),它是⽤于提⾼数据库表数据访问速度的数据库对象。

①⼀些情况下,索引还可⽤于避免排序操作; ②对于⾮聚集索引,有些查询甚⾄可以不访问数据页; ③索引可以避免全表扫描。

多数查询可以仅扫描少量索引页及数据页,⽽不是遍历所有数据页; ④聚集索引可以避免数据插⼊操作集中于表的最后⼀个数据页。

当然,虽然数据库索引可以有效提⾼数据库数据的查询速度,但是也会导致数据库系统更新数据的性能下降,因为⼤部分数据更新需要同时更新索引。

⑵,数据库索引的类型: 数据库索引好⽐是⼀本书前⾯的⽬录,能加快数据库的查询速度。

根据数据库的功能,可以在数据库设计器中创建三种索引:唯⼀索引、主键索引和聚集索引。

尽管唯⼀索引有助于定位信息,但为获得最佳性能结果,建议改⽤主键或唯⼀索引。

①聚集索引,表数据按照索引的顺序来存储的。

对于聚集索引,叶⼦结点即存储了真实的数据⾏,不再有另外单独的数据页; ②⾮聚集索引,表数据存储顺序与索引顺序⽆关。

对于⾮聚集索引,叶结点包含索引字段值及指向数据页数据⾏的逻辑指针,该层紧邻数据页,其⾏数量与数据表⾏数据量⼀致。

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

如果⼀张表没有聚集索引,那么它被称为“堆集”(Heap)。

这样的表中的数据⾏没有特定的顺序,所有的新⾏将被添加的表的末尾位置。

⑶,数据库索引的基本特点: 建⽴索引的⽬的是加快对表中记录的查找或排序。

MySQL中的索引原理及创建方法

MySQL中的索引原理及创建方法

MySQL中的索引原理及创建方法引言:在数据库管理系统中,索引是一种重要的数据结构,能够提高数据存储与检索的效率。

MySQL作为一种关系型数据库管理系统,也采用了索引来加速查询操作。

本文将重点介绍MySQL中索引的原理和创建方法。

一、索引的概念及作用索引是数据库中用于提高查询效率的一种数据结构。

它能够快速定位到指定的数据行,避免了全表扫描的开销,从而加快了查询速度。

索引通常基于某个或多个列的值建立,并保存在内存中,供数据库引擎使用。

索引的作用主要体现在以下几个方面:1. 提高查询速度:通过索引可以快速定位到符合条件的数据行,避免了对整个表进行扫描的操作,大大加快了查询速度。

2. 加速排序:当使用索引进行排序操作时,可以直接根据索引中的顺序进行排序,而无需额外的操作。

3. 优化连接操作:当进行连接操作时,如果连接的列上有索引,可以大幅减少连接所需的资源和时间,提高查询效率。

4. 保持唯一性:通过在列上创建唯一索引,可以保证该列的值在表中的唯一性。

二、MySQL中的索引类型MySQL中支持多种索引类型,常见的有B-Tree索引、Hash索引和全文索引等。

1. B-Tree索引B-Tree索引是MySQL中最常用的索引类型,也是默认的索引类型。

它适用于各种查询条件,并且提供了高效的范围查询和排序功能。

B-Tree索引通过使用平衡树结构来组织数据,每个节点存储了多个键值及对应的指针,使得查询的时间复杂度为O(log n)。

2. Hash索引Hash索引适用于等值查询,如精确匹配某个列的值。

它通过计算列值的哈希值来确定存储位置,使得查询操作的时间复杂度为O(1)。

然而,由于哈希碰撞的问题,导致Hash索引不支持范围查询、排序和连接操作。

3. 全文索引全文索引适用于对大段文本进行模糊查询的场景。

它通过创建一个倒排索引,存储词语及其在文本中的位置信息。

全文索引可以对文本进行分词,并支持模糊匹配和全文搜索等操作。

数据库索引设计的说明书

数据库索引设计的说明书

数据库索引设计的说明书一、引言数据库索引是提高数据库性能和查询效率的重要手段。

本文将详细介绍数据库索引设计的相关内容,包括索引的基本概念、设计原则以及优化技巧。

二、索引的基本概念1. 索引的定义数据库索引是一种用于快速访问数据库表中数据的数据结构。

它类似于图书目录,通过对某些列或字段进行排序和存储,可以加快数据库查询的速度。

2. 索引的作用索引可以提高数据库查询的速度,减少数据库的IO开销。

通过创建适当的索引,可以加快数据检索的速度,提高系统的响应性能。

3. 索引的分类主要常见的索引类型包括:聚簇索引、非聚簇索引、唯一索引、复合索引等。

每种索引类型都有其适用的场景和使用限制。

三、索引的设计原则1. 选择合适的索引字段根据数据库表的查询频率和查询条件的选择,选择适合的字段进行索引。

一般选择经常作为查询条件的字段,并且选择具有较高基数的字段作为索引,可以提高索引的效果。

2. 避免过多的索引索引虽然可以提高查询效率,但也会产生额外的存储空间和写操作的开销。

过多的索引会增加数据库的维护成本,所以需要根据实际需要谨慎选择创建索引。

3. 注意索引的维护索引需要定期进行维护和优化,包括统计索引的选择性、重建索引等操作,以保证索引的准确性和有效性。

四、索引的优化技巧1. 调整索引的顺序在复合索引中,调整字段的顺序可能会影响查询效率。

根据实际的查询条件,将使用频率较高的字段放在前面,可以提高索引的查询性能。

2. 覆盖索引在一些特定的场景下,可以采用覆盖索引来减少IO开销。

通过将需要查询的字段包含在索引中,可以避免查询时的二次IO操作,提高查询的效率。

3. 避免过度索引列的使用过度索引列的存在会影响索引的查询性能,增加存储空间的占用。

需要根据实际需求,仅选择必要的字段进行索引,避免过度使用。

五、总结本文对数据库索引设计进行了详细的介绍,包括索引的基本概念、设计原则以及优化技巧。

通过合理的索引设计和优化,可以提高数据库的查询效率,提升系统的性能和用户体验。

简述数据库索引的的概念和作用

简述数据库索引的的概念和作用

简述数据库索引的的概念和作用
数据库索引是一种数据结构,用于提高搜索和查询数据的效率。

它创建一个特定列或列组的副本,并按照特定的排序规则进行排序。

索引可以在查询时加速数据的访问,减少磁盘I/O操作
的次数,从而提高数据库的性能。

索引的作用主要体现在以下几个方面:
1. 加快数据的查询速度:索引能够快速定位到符合条件的记录,通过跳过大量的数据块,减少了磁盘的I/O操作次数。

2. 提高数据的唯一性和完整性:索引可以为某一或多个列设置唯一性约束,保证数据的唯一性。

另外,还可以为某一列设置非空约束,确保数据的完整性。

3. 优化表连接操作:当使用表连接进行复杂查询时,索引可以大大减少表进行全表扫描的操作,从而提高查询的效率。

4. 排序和分组操作的优化:在进行排序和分组操作时,索引可以减少排序所需的时间和空间,提高效率。

5. 减少磁盘空间的使用:索引可以减小数据的物理存储空间,从而降低磁盘空间的使用成本。

需要注意的是,索引也会带来一些额外的开销,如占用存储空间、增加数据更新的成本等。

因此,在设计数据库索引时,需
要综合考虑索引的使用频率、数据的更新频率以及存储空间的占用等因素。

数据库原理及应用.索引

数据库原理及应用.索引

一、创建索引CREATE INDEX 语句用于在表中创建索引。

CREATE [ UNIQUE ] INDEX index ON tablename (field [ASC|DESC][, field [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]索引分为聚簇索引和非聚簇索引。

1.聚簇索引聚簇索引也叫簇类索引, 是一种对磁盘上实际数据重新组织以按指定的一个 或多个列的值排序。

由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇 索引查找数据几乎总是比使用非聚簇索引快。

每张表只能建一个聚簇索引,并且 建聚簇索引需要至少相当该表 120%的附加空间,以存放该表的副本和索引中间 页。

聚簇索引确定表中数据的物理顺序。

聚簇索引类似于电话簿,后者按姓氏排 列数据。

由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一 个聚集索引。

但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字 进行组织一样。

汉语字典也是聚簇索引的典型应用,在汉语字典里,索引项是字 母+声调,字典正文也是按照先字母再声调的顺序排列。

聚簇索引对于那些经常要搜索范围值的列特别有效。

使用聚簇索引找到包含 第一个值的行后,便可以确保包含后续索引值的行在物理相邻。

例如,如果应用 程序执行的一个查询经常检索某一日期范围内的记录, 则使用聚集索引可以迅速 找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。

这样 有助于提高此类查询的性能。

同样,如果对从表中检索的数据进行排序时经常要 用到某一列,则可以将该表在该列上聚簇(物理排序),避免每次查询该列时都 进行排序,从而节省成本。

建立聚簇索引的思想1、大多数表都应该有聚簇索引或使用分区来降低对表尾页的竞争,在一个高事 务的环境中,对最后一页的封锁严重影响系统的吞吐量。

2、在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因 而在那些包含范围检查(between、<、<=、&gt;、>=)或使用 group by 或 orderby 的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行保证物理上毗连在 一起而不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。

数据库索引的创建和删除方法详解(六)

数据库索引的创建和删除方法详解(六)

数据库索引的创建和删除方法详解引言在数据库管理系统中,索引是一种用于加速数据检索的数据结构。

当数据库中存在大量数据时,使用索引可以快速定位到所需数据,提升查询效率。

本文将详细介绍数据库索引的创建和删除方法,帮助读者更好地理解和使用数据库索引。

一、数据库索引的概述索引的定义和作用数据库索引是对数据库中一列或多列的值进行排序的数据结构。

它类似于书籍的目录,可以快速定位所需数据,减少数据库的扫描操作。

索引的分类常见的数据库索引分类有主键索引、唯一索引、普通索引等。

其中主键索引是用来唯一标识一条记录的索引,而唯一索引是保证数据列中的值是唯一的索引。

二、数据库索引的创建方法创建主键索引在数据库表中,主键索引用来唯一标识一条记录。

通过以下语句可以创建主键索引:```ALTER TABLE 表名 ADD PRIMARY KEY (字段名);```创建唯一索引唯一索引用来保证数据列中的值是唯一的。

通过以下语句可以创建唯一索引:```CREATE UNIQUE INDEX 索引名 ON 表名 (字段名);```创建普通索引普通索引可以提升查询效率,在常用的查询列上创建索引能够加速数据检索。

通过以下语句可以创建普通索引:```CREATE INDEX 索引名 ON 表名 (字段名);```三、数据库索引的删除方法删除主键索引删除主键索引会同时删除主键约束。

通过以下语句可以删除主键索引:```ALTER TABLE 表名 DROP PRIMARY KEY;```删除唯一索引删除唯一索引不会删除唯一约束。

通过以下语句可以删除唯一索引:```DROP INDEX 索引名 ON 表名;```删除普通索引删除普通索引只需要执行以下语句:```DROP INDEX 索引名 ON 表名;```四、数据库索引的使用注意事项索引的选择创建索引时需要考虑查询频率和数据更新频率。

对于经常用于查询的列,可创建索引提升查询效率;而对于经常进行插入、更新和删除操作的列,应慎重创建索引。

简述索引的概念

简述索引的概念

简述索引的概念
索引是一种用于快速搜索和检索数据的数据结构。

它可以帮助提高数据库的查询效率,并且在大型数据集中尤为重要。

在关系型数据库中,索引通常是在表的列上创建的,以便在查询时能够更快地找到匹配的数据行。

通过使用索引,数据库可以避免全表扫描,而是通过直接访问索引来定位数据。

这样可以大大减少查询所需的时间。

索引可以根据不同的数据结构来实现,如B树、B+树、哈希表等。

其中,B树是常用的一种索引结构,它是一个平衡的多叉树,可以高效地支持范围查找。

B+树是B树的一种变体,它在B树的基础上做了优化,适用于存储大量数据的场景。

在创建索引时,需要选择适当的列作为索引的键。

一般来说,选择经常用于查询的列作为索引键会带来更好的性能。

同时,索引的数量也需要控制,过多的索引会导致插入、更新和删除操作的性能下降。

除了增加查询效率外,索引还可以用于保证数据的完整性和一致性。

通过在索引上创建唯一约束,可以防止重复值的插入,并确保数据的唯一性。

此外,索引还可以用于加速表之间的连接操作,提供更快的关联查询速度。

总之,索引是一种重要的数据结构,它可以提高数据库的查询效率、保证数据的完整性,并加速表之间的关联查询。

在设计数据库时,需要合理地创建索引来优
化查询性能,同时注意索引的数量和选择合适的索引列。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中.使用索引,在一般情况下,将能明显提高查询的性能,但系统为维护索引,也必将增加许多额外的开销。

所以,何时应建立索引,查询时是否使用索引,对系统性能的影响将是非常大的。

在这里,我想对这个问题谈一下自己的认识。

首先,在下列情况下,不适合建立索引:1、表的规模不大,在这种情况下,直接查找表的开销比搜索索引再定位的开销要小。

2、表被频繁更新,在这种情况下,维护索引的开销要大于使用索引所带来的性能提高。

3、表上已经建立了许多索引。

4、用户的查询方式经常发生变化。

上述这些情况都是比较直观的,但是,即使建立了索引,在具体查询时,系统也未必会使用该索引。

不管是何种数据库系统,其查询优化过程由两个层次构成:代数优化(或称基于规则的优化)和物理优化(或称基于代价的优化)(部分数据库系统可能不含物理优化过程)。

代数优化是使用一组预定义的规则来对查询进行优化,在这种优化方式下,如果表上建有索引,系统将使用该索引。

物理优化是在代数优化的基础上,根据物理统计信息,来估计各种执行方案的执行代价,从中选取一种最优(代价最小)的执行方案。

在这种优化方式下,如果表上建有索引,是否使用索引,将取决于查询的“选中度”(selectivity)。

什么是选中度?举个例子,假设表中有一名为“年龄”的字段,有一查询需要查出该表中所有“年龄”不超过50岁的记录,如果表中有70%的记录满足这一条件,则称该查询的选中度为70。

当选中度超过某一预先给定的值P(P的大小取决于系统的具体实现)时,遍历整个表的开销比搜索索引再定位的开销要小,此时系统将不使用索引。

通过统计字段的值分布,可以估计查询的选中度,如果它大于P,系统将不使用索引,直接遍历表。

这是一种非常重要的统计信息,它还可用于估计连接操作结果集的大小。

当然,当查询比较固定时,用户也可以根据自己对应用的理解预先估计选中度,如果太大,则不应建立索引。

不过,最理想的方式是,系统能根据查询的特点和统计信息,自主选择是否建立和使用索引,即索引对用户应是透明的。

目前关于这方面的研究也正在进行之中,比较成功的原型系统是Microsoft公司的Phoenix系统(部分技术已用于SQL-SERVER的最新版本中),如果需要了解这一系统更详细的信息,可以访问/db/phoenix 最后,我再来谈谈索引的种类,B+树和HASH表是最常用的两种索引,前者适用于大型的表,后者则适用于较小的表。

ORACLE8i实现了一种所谓的“位图”索引,这种索引比较适合于字段的取值范围较小,且分布比较平均的表。

例如,假设表中有一布尔类型的字段,它的取值包括“真”、“假”、“未知”三种,我们可以为这三个值分别建立一个大小相同的位图,位图中的一个位与表中的一条记录一一对应。

以“真”值位图为例,假设某记录的该字段取值为“真”,则它在位图中的对应位为“1”,否则为“0”。

这样,假设现在需要查询该表中所有该字段取值为“真”的记录,则只要根据该位图,找到所有为“1”的位,将它们对应的记录取出即可。

在专用数据库中,往往也使用其它类型的索引(如R树)。

创建索引不是为了在sql语句中用的,而是可以大大提高系统的性能。

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

1.合理使用索引索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。

现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。

索引的使用要恰到好处,其使用原则如下:●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。

●在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。

●在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。

比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。

如果建立索引不但不会提高查询效率,反而会严重降低更新速度。

●如果待排序的列有多个,可以在这些列上建立复合索引(compound index)。

●使用系统工具。

如Informix数据库有一个tbcheck工具,可以在可疑的索引上进行检查。

在一些数据库服务器上,索引可能失效或者因为频繁操作而使得读取效率降低,如果一个使用索引的查询不明不白地慢下来,可以试着用tbcheck工具检查索引的完整性,必要时进行修复。

另外,当数据库表更新大量数据后,删除并重建索引可以提高查询速度。

2.避免或简化排序应当简化或避免对大型表进行重复的排序。

当能够利用索引自动以适当的次序产生输出时,优化器就避免了排序的步骤。

以下是一些影响因素:●索引中不包括一个或几个待排序的列;●group by或order by子句中列的次序与索引的次序不一样;●排序的列来自不同的表。

为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表(尽管有时可能影响表的规范化,但相对于效率的提高是值得的)。

如果排序不可避免,那么应当试图简化它,如缩小排序的列的范围等。

3.消除对大型表行数据的顺序存取在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。

比如采用顺序存取策略,一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。

避免这种情况的主要方法就是对连接的列进行索引。

例如,两个表:学生表(学号、姓名、年龄……)和选课表(学号、课程号、成绩)。

如果两个表要做连接,就要在“学号”这个连接字段上建立索引。

还可以使用并集来避免顺序存取。

尽管在所有的检查列上都有索引,但某些形式的where子句强迫优化器使用顺序存取。

下面的查询将强迫对orders 表执行顺序操作:SELECT *FROM orders WHERE (customer_num=104 AND or der_num> 1001) OR order_num=1008虽然在customer_num和order_num上建有索引,但是在上面的语句中优化器还是使用顺序存取路径扫描整个表。

因为这个语句要检索的是分离的行的集合,所以应该改为如下语句:SELECT *FROM orders WHERE customer_num=104 AND ord er_num> 1001UNIONSELECT *FROM orders WHERE order_num=1008这样就能利用索引路径处理查询。

4.避免相关子查询一个列的标签同时在主查询和where子句中的查询中出现,那么很可能当主查询中的列值改变之后,子查询必须重新查询一次。

查询嵌套层次越多,效率越低,因此应当尽量避免子查询。

如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。

5.避免困难的正规表达式MATCHES和LIKE关键字支持通配符匹配,技术上叫正规表达式。

但这种匹配特别耗费时间。

例如:SELECT *FROM customer WHERE zipcode LIKE “98_ _ _”即使在zipcode字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。

如果把语句改为SELECT *FROM customer WHERE zipcode > “98000”,在执行查询时就会利用索引来查询,显然会大大提高速度。

另外,还要避免非开始的子串。

例如语句:SELECT *FROM customer WHERE zipcode[2,3] > “80”,在where子句中采用了非开始子串,因而这个语句也不会使用索引。

6.使用临时表加速查询把表的一个子集进行排序并创建临时表,有时能加速查询。

它有助于避免多重排序操作,而且在其他方面还能简化优化器的工作。

例如:SELECT ,rcvbles.balance,……other columnsFROM cust,rcvblesWHERE cust.customer_id = rcvlbes.customer_idAND rcvblls.balance> 0AND cust.postcode> “98000”ORDER BY 如果这个查询要被执行多次而不止一次,可以把所有未付款的客户找出来放在一个临时文件中,并按客户的名字进行排序:SELECT ,rcvbles.balance,……other columnsFROM cust,rcvblesWHERE cust.customer_id = rcvlbes.customer_idAND rcvblls.balance> 0ORDER BY INTO TEMP cust_with_balance然后以下面的方式在临时表中查询:SELECT *FROM cust_with_balanceWHERE postcode> “98000”临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以查询工作量可以得到大幅减少。

注意:临时表创建后不会反映主表的修改。

在主表中数据频繁修改的情况下,注意不要丢失数据。

7.用排序来取代非顺序存取非顺序磁盘存取是最慢的操作,表现在磁盘存取臂的来回移动。

SQL语句隐藏了这一情况,使得我们在写应用程序时很容易写出要求存取大量非顺序页的查询。

有些时候,用数据库的排序能力来替代非顺序的存取能改进查询。

相关文档
最新文档