WEB开发网
开发学院数据库Oracle SQL Server和Oracle数据库索引介绍 阅读

SQL Server和Oracle数据库索引介绍

 2008-09-08 12:51:07 来源:WEB开发网   
核心提示: B*树是一个极佳的通用索引机制,无论是大表还是小表都很适用,SQL Server和Oracle数据库索引介绍(6),随着底层表大小增长,获取数据的性能仅会稍有恶化,比如在一个Oracle RAC 环境中,某些列用一个序列值或时间戳填充,比如,我们为customers表建立一个常见的B*树索

B*树是一个极佳的通用索引机制,无论是大表还是小表都很适用,随着底层表大小增长,获取数据的性能仅会稍有恶化。

比如,我们为customers表建立一个常见的B*树索引: 

   CREATEINDEXIDX_Cus_Cityoncustomers(city)

B*树索引有以下子类型:

复合索引

复合索引也是一种B*树索引,它由多列组成。当我们拥有使用两列或超过两列的频繁查询时,就使用B*树复合索引,而其所使用的两列或多列在where子句中and逻辑操作符连接。

因为复合索引中列的顺序很重要,所以确信以最有效的索引能排列他们,可以参考用作列排序的下面的两个准则 :

1) 前导列应该是查询中使用最频繁的列。

2) 前导列应该是选择最多的列,这意味着它比后面的列具有更高的基数。

复合索引在下列情况中具有优势:

1)假定在WHERE子句中频繁使用下面的条件:order_status_id = 1 和order_date = ‘dd-mon-yyyy’。如果为每一列创建一个索引,那么为了搜索列的值,两个索引都要被读取,但是如果为两列都创建一个复合索引,那么只有一个索引被读取,这样无疑比两个索引要求更少的I/O。

2) 使用前面例子中同样的条件,如果创建一个复合索引,将更快地检索行,因为你正在排除了所有order_status_id 不是1的行,从而减少了搜索order_date的行数。

反向键索引

B*树索引的另一个特点是能够将索引键“反转”。首先,你可以问问自己“为什么想这么做?” B*树索引是为特定的环境、特定的问题而设计的。实现B*树索引的目的是为了减少“右侧”索引中对索引叶子块的竞争,比如在一个Oracle RAC 环境中,某些列用一个序列值或时间戳填充,这些列上建立的索引就属于“右侧”(right-hand-side)索引。

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL Server Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接