分布式数据库效率和性能如何提升和优化?有哪些具体方法?

对于多表关联的效率低的问题,有哪些方法可以优化;月季度结息等批量业务如何设计;另外,对于一些热点账户如何进行优化提升效率等等。

参与7

3同行回答

一力搜索一力搜索  数据库架构师 , 股份制银行
一方面你的中间件在解析语法树上保证下推效率高。得保证你的中间件中间数据可以写磁盘。账户跑批类型中间件建议和交易中间件拆分,我行过亿客户交易跑批都没问题,你们这种小行应该小菜一碟...显示全部

一方面你的中间件在解析语法树上保证下推效率高。得保证你的中间件中间数据可以写磁盘。
账户跑批类型中间件建议和交易中间件拆分,我行过亿客户交易跑批都没问题,你们这种小行应该小菜一碟

收起
银行 · 2021-06-25
浏览1027
lulihuan1987lulihuan1987  数据库管理员 , 张家港行
(1)分布式数据库数据是分布在多个节点的,当需要进行多表关联时,往往很难避免数据在节点间流动,导致查询效率较低。建议从以下几个方面进行优化:1)合理进行表设计,尽量避免跨节点表关联:a) 对所有的库表进行重新设计,合理设置分区键,分区键也是表的字段,表根据分区键字段将数据打散在...显示全部

(1)分布式数据库数据是分布在多个节点的,当需要进行多表关联时,往往很难避免数据在节点间流动,导致查询效率较低。建议从以下几个方面进行优化:

1)合理进行表设计,尽量避免跨节点表关联:

a) 对所有的库表进行重新设计,合理设置分区键,分区键也是表的字段,表根据分区键字段将数据打散在各个节点,因此分区键设置时要从全局和交易局综合考虑,将交易中经常用来关联的字段设置为分区键,比如客户账户。

b) 对于更新评论较少且数据量不大的表,建议设置成全局表,即每个数据节点保存该表的全量数据,这样分片表和全局表进行关联时,也不会有节点间数据流动。

2)对于跨节点关联的改造:

a)对此类SQL进行拆分,拆成多个单表SQL或者节点内关联SQL。无法拆分过程中可以考虑使用临时表(中间表),将中间数据放到临时表,中间表进行承上启下的关联。

b)对交易业务逻辑进行重新设计,改造复杂 SQL 。

总的就是交易中必须避免节点间数据的流动,以免影响系统并发性能和扩展性能。

(2)月季度结息逐笔进行,根据一定的规则进行分组,并发执行,然后,优化好每笔结息事务,进行SQL优化,比如优化跨节点多表关联,确保可以通过高并发实现快速结息,同时保证后续的可扩展性,较好适配分布式数据库。

(3)对于热点账户,建议设置为异步模式,即先记账,定时扣款,减少互锁,提升性能;为防止账务风险,可以设定阈值,账户余额低于阈值时,开启同步模式,高于阈值时开启异步模式;

收起
银行 · 2021-06-25
浏览1047
沈天真沈天真  售前支持 , IPS
基础架构方面,集群规模不要太大;显示全部

基础架构方面,集群规模不要太大;

收起
硬件生产 · 2021-06-18
浏览1106

提问者

Dongxin
系统架构师某银行股份有限公司
擅长领域: 服务器灾备存储

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2021-06-17
  • 关注会员:4 人
  • 问题浏览:1986
  • 最近回答:2021-06-25
  • X社区推广