【索引分类】分区索引

分区索引

分区索引就是简单地把一个索引分成多个片断。通过把一个索引分成多个片断,可以访问更小的片断(也更快),并且可以把这些片断分别存放在不同的磁盘驱动器上(避免I/O问题)。B树和位图索引都可以被分区,而HASH索引不可以被分区。可以有好几种分区方法:表被分区而索引未被分区表未被分区而索引被分区表和索引都被分区。不管采用哪种方法,都必须使用基于成本的优化器。分区能够提供更多可以提高性能和可维护性的可能性。

有两种类型的分区索引:本地分区索引全局分区索引。每个类型都有两个子类型,有前缀索引和无前缀索引。表各列上的索引可以有各种类型索引的组合。如果使用了位图索引,就必须是本地索引。把索引分区最主要的原因是可以减少所需读取的索引的大小,另外把分区放在不同的表空间中可以提高分区的可用性和可靠性。

在使用分区后的表和索引时,Oracle还支持并行查询和并行DML。这样就可以同时执行多个进程,从而加快处理这条语句。

 

本地分区索引(通常使用的索引)

可以使用与表相同的分区键和范围界限来对本地索引分区。每个本地索引的分区只包含了它所关联的表分区的键和ROWID。本地索引可以是B树或位图索引。如果是B树索引,它可以是唯一或不唯一的索引。

这种类型的索引支持分区独立性,这就意味着对于单独的分区,可以进行增加、截取、删除、分割、脱机等处理,而不用同时删除或重建索引。Oracle自动维护这些本地索引。本地索引分区还可以被单独重建,而其他分区不会受到影响。

1)有前缀的索引

有前缀的索引包含了来自分区键的键,并把它们作为索引的前导。例如,让我们再次回顾participant表。在创建该表后,使用survey_id和survey_date这两个列进行范围分区,然后在survey_id列上建立一个有前缀的本地索引,如下图所示。这个索引的所有分区都被等价划分,就是说索引的分区都使用表的相同范围界限来创建。


技巧:本地的有前缀索引可以让Oracle快速剔除一些不必要的分区。也就是说没有包含WHERE条件子句中任何值的分区将不会被访问,这样也提高了语句的性能。

2)无前缀的索引

无前缀的索引并没有把分区键的前导列作为索引的前导列。若使用有同样分区键(survey_id和survey_date)的相同分区表,建立在survey_date列上的索引就是一个本地的无前缀索引,如下图所示。可以在表的任一列上创建本地无前缀索引,但索引的每个分区只包含表的相应分区的键值。


如果要把无前缀的索引设为唯一索引,这个索引就必须包含分区键的子集。在这个例子中,我们必须把包含survey和(或)survey_id的列进行组合(只要survey_id不是索引的第一列,它就是一个有前缀的索引)。

技巧:对于一个唯一的无前缀索引,它必须包含分区键的子集。

 

全局分区索引

全局分区索引在一个索引分区中包含来自多个表分区的键。一个全局分区索引的分区键是分区表中不同的或指定一个范围的值。在创建全局分区索引时,必须定义分区键的范围和值。

全局索引只能是B树索引。Oracle在默认情况下不会维护全局分区索引。如果一个分区被截取、增加、分割、删除等,就必须重建全局分区索引,除非在修改表时指定ALTERTABLE命令的UPDATE GLOBAL INDEXES子句。

1)有前缀的索引

通常,全局有前缀索引在底层表中没有经过对等分区。没有什么因素能限制索引的对等分区,但Oracle在生成查询计划或执行分区维护操作时,并不会充分利用对等分区。如果索引被对等分区,就必须把它创建为一个本地索引,这样Oracle可以维护这个索引,并使用它来删除不必要的分区,如下图所示。在该图的3个索引分区中,每个分区都包含指向多个表分区中行的索引条目。


分区的、全局有前缀索引


技巧:如果一个全局索引将被对等分区,就必须把它创建为一个本地索引,这样Oracle可以维护这个索引,并使用它来删除不必要的分区。

2)无前缀的索引Oracle

Oracle不支持无前缀的全局索引。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
V20150531版 1、重要!修复导航站与信息站之间帐户登录通行时被侵后台的漏洞。 全新V20150512版更新说明: 1、实现了数据的海量备份与恢复。大数据时,不再依靠帝国备份王等程序,后台轻松实现海量MySQL数据的备份与恢复。 2、实现了多地区城市支持!很多朋友都期待的功能。 3、实现了与162100网址导航程序、162100Wap导航(手机版导航)的用户对接,登录后帐户通行。 4、增加、完善了首页模板。 5、增加、完善了列表模式,特别完善了图文列表模式。 6、增加、完善了广告位。 7、升级了论坛编辑器。 8、升级了发帖的提交方式。 9、在首页图文推荐基础上,增加了用户自行购买图文展示。 10、完善了栏目隐藏。 11、更改了伪静态规则。 12、对程序结构、代码进行了大幅优化完善……,不一一赘述。   【程序简介】 1、“拒绝繁冗,选择简炼”,PHP MySQL作品,162100.com原创。 2、论坛、分类信息、文章系统三合一系统,多用网站建设。 3、MySQL分区索引操作,快捷运行、高效承载。 5、强大的管理后台:无限级自由分类、风格模式转换、伪静态支持、文章审核、成员管理、群发邮件、支付宝收银…… 6、精炼的用户中心:头像在线生成、个人名片制作、文章管理、悬赏、收藏、短信、货币及信誉管理…… 7、所见即所得的162100editer论坛编辑器。 8、多管理员及版主支持。 9、栏目分类已预装完毕,可按照自己的需要修改设定。 10、轻松管理广告位。 11、浏览器测试IE6、IE8、360、Firefox、Chrome、Safari、Opera兼容。 12、更多精彩实用尽属162100FAIcode 【程序安装】 1、参看read.txt。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值