您的位置:首页 > 数据库 > Oracle

Oracle 从分区到Sharding(数据库核心业务表的分区设计)

2017-10-01 22:38 239 查看
1.分区与Sharding
    请参考上篇文章:http://blog.csdn.net/luomingkui1109/article/details/78149009

2.分区概述
(1) 分区定义:
     根据内部定义的规则,将一张表的数据拆分到多个数据段中
     对应用透明,程序可以不做任何额外调整
     可以通过分区列上的条件访问指定分区的数据,也可以通过分区扩展语句显式的访问
(2) 分区的优点
     可维护性
     可用性增强
     OLTP:降低共享资源争用
     OLAP:提升查询性能
(3) Oracle 分区历史演变



3.分区设计
(1) 范围分区:
    ①
4000

适用场景
        时间属性
        关注近期数据
    ②  最佳实践
        数据生命周期和访问范围
        明确时间条件限定
        定期清理过期分区
        非主键优先本地索引
    ③ 优势
        将表分割成大小相对一致的分区,分区数据量可控
        TRUNCATE,DROP,EXCHANGE分区的方式清理过期数据
        大部分带时间条件的查询只访问一个或几个分区
        表的总体大小相对稳定
        本地索引大小相对稳定
    ④ 面临挑战1
        无法仅根据时间条件清理过期数据
        DELETE方式清除效率低下并产生大量归档日志
        DELETE方式清除无法有效释放分区和索引空
        长时间不清理导致表的数据量迅速膨胀
        长时间不清理导致表的分区数量不断增长
    ⑤ 解决方案1
        INSERT + EXCHANGE方式进行数据清理
        定期MERGE清理过的分区减少分区数量
        避免DELETE效率低下问题
        避免空间无法释放问题
    ⑥ 解决方案1
      
 INSERT + EXCHANGE方式进行数据清理
        定期MERGE清理过的分区减少分区数量
        避免DELETE效率低下问题
        避免空间无法释放问题
    ⑦ 面临挑战2
        主表分区时间列在子表上不存在
        主表时间列和子表时间列字段含义不同
        数据清理过程会破坏主子表依赖关系
        子表需要冗余主表分区字段
        主子表外键约束导致无法通过DDL清理过期分区
    ⑧ 解决方案2
        主表根据时间字段范围分区
        子表通过外键建立参考分区
        参考分区的数据清理不破坏主外键依赖关系

(2) 参考分区
    适用场景
        主表和子表采用相同的数据清理策略
        子表没有合适的分区字段
        主表和子表经常关联访问

(3) 哈希分区:
    ① 适用场景
        没有时间属性
        缺少区分数据的业务字段
    ② 最佳实践
分区键值列选择重复度不高的字段
分区数量应为2的幂
多创建全局索引
哈希分区索引可解决索引热点块问题
    ③ 优势
分区没有业务特点的数据
数据均匀分布
        有效解决递增索引的热点块问题
    ④ 哈希全局分区索引
        全局哈希分区索引比较适合像ID这种数据增长型索引,通过HASH算法,可以将递增的索引键值分布到多个分区上,从而避免系统争用。

(4) 列表分区
    ① 适用场景
        地域,类型等有限的业务属性
        访问一种或几种业务属性
        通过业务属性可平均拆分数据
    ② 最佳实践
        地区字段是常见候选
        数据分布和访问方式确定分区键值划分
        设定DEF AUL分区
    ③ 优势
       分区方式和业务匹配度更好
       数据如何在分区中存放的选择度更高
       分区键值与分区的对应更加明确

(5) 复合键值列RANGE分区

(6) RANGE-RANGE复合分区

5. 12.2分区新特性



    具体内容请参考-【2015 OTN】杨廷琨 - 从分区到Sharding:数据库核心业务表的分区设计:http://download.csdn.net/download/luomingkui1109/10005580


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: