Home  >  Article  >  Database  >  oracle 性能优化操作七:索引提高数据分布不均匀时查询效率

oracle 性能优化操作七:索引提高数据分布不均匀时查询效率

WBOY
WBOYOriginal
2016-06-07 15:07:571727browse

索引的选择性低,但数据的分布差异很大时,仍然可以利用索引提高效率。 A、数据分布不均匀的特殊情况下,选择性不高的索引也要创建。 表ServiceInfo中数据量很大,假设有一百万行,其中有一个字段DisposalCourseFlag,取范围为枚举:[0,1,2,3,4,5,6,7

索引的选择性低,但数据的值分布差异很大时,仍然可以利用索引提高效率。

A、数据分布不均匀的特殊情况下,选择性不高的索引也要创建。

表ServiceInfo中数据量很大,假设有一百万行,其中有一个字段DisposalCourseFlag,取值范围为枚举值:[0,1,2,3,4,5,6,7]。

按照前面说的索引建立的规则,“选择性不高的字段不应该建立索引”,

该字段只有8种取值,索引值的重复率很高,索引选择性明显很低,因此不建索引。

然而,由于该字段上数据值的分布情况非常特殊,具体如下表:

取值范围                     占总数据量的百分比
1~5                                          1% 
6                                               98%
7                                               1%

而且,常用的查询中,查询DisposalCourseFlag

那么将大大提高这种情况的查询效率。因此,我们需要在该字段上建立索引。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn