高并发场景下的数据库治理

数据库在高并发系统中扮演关键角色,其性能直接影响整体吞吐量。治理主要包括算力(索引优化、SQL优化、避免大范围查询)和存储能力(分库分表、数据删除与离线导出)的提升。当单表数据量过大时,需进行分库分表操作,并根据业务重要性进行数据库的强弱依赖治理。
摘要由CSDN通过智能技术生成

为啥要做数据库的专项治理?

在高并发场景下,数据库是整个系统链路的最底层,他能直接影响整个系统的吞吐力和高性能。

     接口的压力是可以通过应用的集群横向扩容来缓解压力,高速缓存现在也能轻松支持几十万qps,唯独数据库在整个应用的运行期是无法做到水平扩容缓解压力的

 所以在高并发高性能的架构治理中,数据库需要单独拧出来做专项治理的。

数据库的治理到底治的是什么?

 数据库的治理主要围绕数据库的算力和存储能力来治理,而算力通常也受其存储能力的影响。

从单库单表来看

影响其算力的部分有

  1. 添加索引,优化索引
  2. sql 优化:如静止动态sql,sql 要有业务语义;核心库要静止大范围查询和group by 能内存聚合分析的语句,避免BP 里的热点数据被换算挤兑出去了,这样容易导致压垮骆驼的最后一根稻草;update 语句要根据主键更新避免死锁;
  3. 如果数据持续扩大再新建备库,读写分离。(读写分离只能适用纯读的业务链路,写读写要避免使用。适合报表 账单之类的导出)

随着数据的增长,当单表的数据达到8千万条 甚至超过上亿条后 上述的优化已经不明显了,这就涉及到了数据库的另一个治理-存储能力的治理。相对情况下,存储越大 算力越低。

  1. 这就需要分库分表了。该分多大,多少张表,多少个库,每个库适合多少张表? 理论上单库存储能力上限是5t,建议在2t,原因是阿里云在5t以内可以做到线上数据库出问题后两分钟内回复备库使用。
  2. 定期删除数据,数据OP,是为了增加单库内的热点数据的密度(把业务行为完结的数据就可以删除了,保留着干嘛 成本又贵)。那非热点数据可以通过离线表做离线导出。

最后回溯整个业务产品的功能,根据业务分级,区分核心链路,在技术架构上做出调整 进行数据库的强弱依赖治理。核心链路上核心数据库要重保,剥离对非核心数据库的依赖。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值