DRDS:分布式关系型数据库服务(Distributed Relational Database Service)是阿里巴巴致力于解决单机数据库服务瓶颈问题而自主研发推出的分布式数据库产品,解决了一些传统单库 RDS 数据库的痛点。
由于 DRDS 是一个分布式关系数据库服务,处理的是分布式关系运算。分布式无疑会带来额外的跨库网络开销,而大家都知道,网络通信的延迟比单机内通信的延迟大得多。
因此分布式环境中优化更应侧重考虑:
- 减少网络传输;
- 减少 DRDS 计算量,尽量将计算下推到下层的数据节点上,让计算在数据所在的机器上执行;
- 充分发挥下层存储的全部能力。
1、数据尽可能平分
不管是采用何种分库分表框架或平台,其核心的思路都是将原来保存在单边中太大的数据进行拆分,将这些数据分散保存在多个数据库的多个表中,避免因为单表数据太大给数据的访问带来读写性能的问题。所以在分库分表的场景下,最重要的一个原则就是被拆分的数据尽可能的平均拆分到后端的数据库中,如果拆分的不均匀。可能会产生数据访问热点,同样存在热点数据因为增长过快而又面临数据单表数据过大的问题。
而对于数据按照什么样的维度进行拆分,大家看到很多场景中都是对业务数据的ID进行哈希取模的方式将数据平均拆分,这个方式确实在很多场景下都是非常合适的拆分方法,但并不是所有的场景中这种拆分都是最优选择。所以需要结合实际业务数