频道栏目
首页 > 数据库 > Oracle > 正文
oracle性能优化操作七:索引提高数据分布不均匀时查询效率
2015-01-06 10:22:42         来源:糖醋里脊  
收藏   我要投稿

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

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

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

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

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

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

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

而且,常用的查询中,查询DisposalCourseFlag<6 的情况既多又频繁,毫无疑问,如果能够建立索引,并且被应用,

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

点击复制链接 与好友分享!回本站首页
上一篇:oracle性能优化操作八:利用HINT强制指定索引
下一篇:oracle性能优化操作十四:使用基于函数的索引
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站