db2有关索引的学习笔记-db2-java诺曼底java诺曼底web开发s.docxVIP

  • 4
  • 0
  • 约7.97千字
  • 约 14页
  • 2021-04-13 发布于天津
  • 举报

db2有关索引的学习笔记-db2-java诺曼底java诺曼底web开发s.docx

Db2 有关索引的学习笔记 - DB2 - JAVA 诺曼底 java 诺曼底 web 开发 s... .介绍 概述 建表时,为提高检索速度和保证列无重复行,对表的任何 列或多列都可建索引,而该列称为索引( key column )。建 索引有 3 种目的: 1.为建索引列提供快速检索。改善某些特殊列或值的查询 性能。 2.为建索引提供升序或降序功能。该功能对有 ORDER BY 和 GROUP BY 子句的查询特别有用。 加快这些子句的实施。 当然,这些子句也可以不用索引实施,系统只作简单的分类 处理。 3.为表中某些列保证不出现重复行。 因为在建唯一索引时, 如列中有重复行,建唯一索引失败返回,利用这一性质,可 处理列中 用户可按自己需求,组合各列作为索引项列,并对 它建索引,但是,建索引要花费一定开销。主要指空间占用 它建索引 ,但是,建索引要花费一定开销。主要指空间占用 的开销。因为,建索引时, 对列值要全部复制, 再加上指针, 都需占用空间。另一方面开销是在发生表修改时,每次对表 的列值修改,相应索引必然要改。实际上,数据库的维护工 作中,索引维护经验是很重要的实践内容。虽然,关系型数 据库的数据,独立于库模型,允许增加或删除索引。但是, 的开销。 查询的每次执行,与索引的选择是相关的。 在 UDB 在 UDB 中,只有三种方法去实施对特殊列保证无重复行。 种方法是对列建唯一索引,另一种方法是对该列指定主关 键字,最后一种方法是对该列建唯一关键字。如指定 SERIALNO 为 EMPLOYEE 表的主关键字或唯一关键字, 为 保证列无重复的行,对它建唯一索引。对一个表来说,主关 键字只有一个,而唯一关键字可以有多个。 分类 索引的分类 按照索引的应用和结构可以有不同的分类方法。 ) 聚集索引和非聚集索引 聚集索引不仅是把关键字相近的记录用指针逻辑地连在 起,而且把关键字相近的记录物理地存放在一起。每个表中 仅能有一个聚集索引。我们一般建的索引均是非聚集索引, 如要建立聚集索引, 就要在建索引的命令中加 CLUSTER 子 句。 2 ) 唯一关键字索引和非唯一关键字索引 唯一关键字索引主要是建索引的关键字的值必须唯一,特别 是在已存在的表上建唯一索引时,如有关键字的值不唯一, 那么建索引失败。对主关键字和唯一关键字,系统会自动建 唯一索引。在建索引时,要加 UNION 的子句。 3 ) 复合关键字索引和包含关键字索引 如建索引,系统会针对关键字的升序或降序方式来帮助提高 查询性能,对复合关键字会逐个地按升序或降序来索引。而 对包含关键字索引,只对所要索引的关键字按序进行,对所 包含的字段不按序进行,只是在索引中增加了字段,常常是 对唯一关键字索引做包含字段。 索引的设计 1.3.1 准则 1. 一个表如果建有大量索引会影响 1. 一个表如果建有大量索引会影响 INSERT 、UPDATE 和 DELETE 语句的性能, 因为在表中的数据更改时, 所有索引 都须进行适当的调整。另一方面,对于不需要修改数据的查 询( SELECT 语句),大量索引有助于提高性能,因为数据 库有更多的索引可供选择,以便确定以最快速度访问数据的 最佳方法。 2. 组合索引: 组合索引即多列索引,指一个索引含有多个列。个组合索引相当于多个单列索引,如索引 2. 组合索引: 组合索引即多列索引, 指一个索引含有多个列。 个组合索引相当于多个单列索引,如索引 (ColA, ColB, ColC) 至少相当于 (ColA) 、(ColA, ColB) 、(ColA, ColB, ColC) 三个索引。 2. 覆盖的查询可以提高性能性能。 覆盖的查询是指查询中所有指定的列都包含在同一个索引 2. 覆盖的查询可以提高性能 性能。 覆盖的查询是指查询中所有指 定的列都包含在同一个索引 (组合索引 )中 。例如,如果在 个表的 a 、b 和 c 列上创建了组合索引, 则从该表中检索 和 b 列的查询被视为覆盖的查询。创建覆盖一个查询的索 引可以提高性能,因为该查询的所有数据都包含在索引自身 当中;检索数据时只需引用表的索引页,不必引用数据页, 因而减少了 I/O 总量。尽管给索引添加列以覆盖查询可以提 高性能,但在索引中额外维护更多的列会产生更新和存储成 本。 3. 对小型表进行索引可能不会产生优化效果, 因为数据库在 遍历索引以搜索数据时,花费的时间可能会比简单的表扫描 还长。 应使用 SQL 事件探查器和索引优化向导帮助分析查询, 确定要创建的索引。为数据库及其工作负荷选择正确的索引 是非常复杂的,需要在查询速度和更新成本之间取得平衡。 窄索引(搜索关键字中只有很少的列的索引)需要的磁盘空 间和维护开销都更少。而另一方面,宽索引可以覆盖更多的 查询。确

文档评论(0)

1亿VIP精品文档

相关文档