>데이터 베이스 >MySQL 튜토리얼 >oracle 性能优化操作七:索引提高数据分布不均匀时查询效率

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

WBOY
WBOY원래의
2016-06-07 15:07:571739검색

索引的选择性低,但数据的分布差异很大时,仍然可以利用索引提高效率。 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

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.