银行核心系统分表分区和批处理性能优化

分表与分区的选择:

 

         分表是表名不同,表结构一致,由应用程序自行实现访问的封装。

         分区是在同一个表内,由数据库实现记录存储的分片,对应用程序透明。此时索引可选择是分区索引还是全局索引。但有分区删除的情况时,不应建立全局索引。

         如果划分的规则未来会有变化,则应选择分表,可实现不停机修改规则。因此,按日期可分区,按hash应分表。

 

         按日期拆分的,查询时必须带日期或日期范围。历史日期数据不得更改,要进行转移。只应访问当日和昨日的数据,其余日期由历史数据提供查询。

         按稳定不变的各类ID(如账号,客户号,卡号)进行hash分表的,查询时必须带ID,如果有间接查询的情况,应建立映射转换表。Hash选择要直观和均匀。

 

 

批处理性能:

 

         批处理并发时,并发进程按照分表分区来拆分,每个进程顺序处理且只处理一个分片。因此,相同ID的其他表应保持一样的hash规则,达到进程处理的拆分一致。

 

         并发处理时有大量insert的表,要注意达到最高性能,需要做到:同一个分片只由一个进程插入数据。

 

         批处理时,对一定可以成功,并且对外无影响的部分处理,可登记异步加工。如内部账记账,补清算。

         批处理时,在一个进程内,应考虑一个事务下对频繁更新插入的表记录进行合并,一次性处理,如多笔一对一记账可以改变成多对一记账,或者设计传票和明细表结构时,能体现多合一的汇总传票,汇总明细。如果不能,还可以将一个事务中该记录的多次update在应用中暂存,commit时再进行一次update,将一个事务中多次insert暂存,commit时进行整体insert

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/283313/viewspace-2152453/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/283313/viewspace-2152453/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值