《企业IT架构转型之道》随笔之数据库拆分(2019-08-13)

本文探讨了数据库拆分策略,包括分库分表、事务边界管理等,旨在提升数据库线性扩展能力。介绍了cobar、TDDL、DRDS等分布式数据库系统的特点与应用场景,强调了平均拆分和事务边界优化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《企业IT架构转型之道》随笔之数据库拆分(2019-08-13)

名词注释

  1. cobar:阿里巴巴初期使用的关系型数据库分布式处理系统。不支持跨库的查询;SET操作会被丢弃(处理事务和设置字符集除外);如果使用分库,inset必须带有分库字段,update不能更新分库字段、不支持SAVEPOINT(保存点)操作;使用JDBC时不支持批量提交(rewriteBatchedStatement=true);使用JDBC时不支持预编译(useServerPrepStmts=true);使用JDBC时不支持对二进制类型BLOB、BINARY、VARBINARAY字段使用setBlob()或者setBinaryStream()。
  2. TDDL:Taobao Distributed Data Layer,分布式数据层框架。它完全按照JDBC规范实现,实现调用方代码零入侵。分为三层:matrix分表分库逻辑层、group主备/读写分离层、atom连接层。
  3. 分表分库的事务边界:单个SQL在后端数据库上同时执行的数量。事务边界越大,锁冲突的概率就越大,而且因为无法通过扩展数据库数量来增大可用连接数。
  4. DRDS:分布式关系型数据库服务(Distributed Relational Database Service,简称 DRDS)是阿里巴巴致力于解决单机数据库服务瓶颈问题而自主研发推出的分布式数据库产品。DRDS 高度兼容 MySQL 协议和语法,支持自动化水平拆分、在线平滑扩缩容、弹性扩展、透明读写分离,具备数据库全生命周期运维管控能力。DRDS 前身为淘宝 TDDL,是近千核心应用首选组件。

概要

分库分表主要提升了数据库的线性扩展能力。数据库拆分时,要尽可能的平均拆分,防止单个热表出现,如果表数据分布不均匀,很容易造成大部分分片数据库/表负载良好,个别分片数据库/表热度过高阻塞业务。尽量减少事务边界。如果存在较多全表扫描情况,建议使用异构索引表,以空间换时间,降低全表扫描的概率。
当然,很有可能平均拆分与事务边界存在无法同时兼顾的情况,这种情况下,最好优先考虑平均拆分,因为大部分事务边界都可以使用异构索引表解决,而平均拆分的缺陷则会随着差异越大,解决起来越困难,甚至需要推翻重做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值