扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
第 14 章 分区
14.1 分区的使用
增加可用性
减轻维护负担
提高DML与查询的性能
14.2 分区如何工作
表分区策略
索引分区
本地索引
分为本地前缀索引(Local Prefixed Index)、本地非前缀索引(Local Non-prefixed Index)
1. 索引的选择
在单表查询中,本地非前缀索引可能增加可用性,也更加实用。例如表T(a, b)按a区间分区,若在b上建立本地索引,则当某个分区离线,仅查询b的某个值时,该索引可用,而索引(a, b)不可用;删除索引(a, b),查询(a, b)的某对值,b上的索引仍可用。此时若建立索引(b, a),则可应对各类查询。
在多表关联(如上例中按照(a, b)值关联)时,系统将发现代价较高而不会用到本地非前缀索引(如上例中(b, a))。
因此建立本地索引时应当考虑通常的使用环境。
2. 无法基于本地非前缀索引建立唯一键或主键。
全局索引
仅有一种,即全局前缀索引
1. 数据仓库环境
在(与建立好相应索引的表)交换分区与索引或分割分区后,全局索引将失效而必须重建,因此全局索引并不适合数据仓库。
例如:
ALTER TABLE partitioned
EXCHANGE PARTITION fy_1999
WITH TABLE fy_1999
INCLUDING INDEXES
WITHOUT VALIDATION;
ALTER TABLE partitioned
SPLIT PARTITION the_rest
AT (TO_DATE(‘200101’, ‘yyyymm’))
INTO (PARTITION fy_2000, PARTITION the_rest);
2. OLTP环境
一定程度上增加了可用性。当某些分区离线,不含有用于分区的列且合乎查询条件的数据存在于在线分区的索引仍然是可用的,对于不需要查询全表而是通过索引即可得到结果的查询也是有效的(例如COUNT非用于分区的列等)。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者