好学近乎知,力行近乎仁,知耻近乎勇。一一《中庸》
https://github.com/actiontech/dble
https://opensource.actionsky.com/
dble:高性能 MySQL 分库分表中间件,助力数据库水平扩展
在互联网业务持续增长的今天,单台 MySQL 数据库的性能瓶颈和容量瓶颈愈发突出。面对数据量级和访问压力的持续提升,如何平滑实现 MySQL 的分库分表和在线扩展,成为众多企业技术团队亟需解决的问题。由上海爱可生信息技术股份有限公司开源和维护的 dble(发音为“double”,取意“更少 bug,没有 ou”),正是面向这一需求的专业级解决方案。
一、dble 简介
dble 是一款专为 MySQL 设计的高可扩展性数据库中间件,其核心功能是实现 MySQL 的分库分表(Sharding)、高可用集群和复杂 SQL 的分布式优化。dble 诞生于实践一线,已在银行等关键场景大规模应用,并作为爱可生公司“云树分布式数据库软件(CTREE Shard)”的开源版本持续迭代。
二、核心特性
1. 透明分库分表
- 支持在业务无感知的情况下,将单库拆分为多个分片,有效突破单实例瓶颈。
- 兼容 MySQL 协议,绝大多数应用无需修改代码即可直接切换至 dble。
2. 高可用集群
- dble 可集群部署,自动容错与故障转移,消除单点故障风险,保障业务连续性。
3. 强大 SQL 支持与优化
- 支持 SQL 92 标准及 MySQL 方言,涵盖 group by、order by、distinct、join、union 等复杂查询。
- 针对全局表、ER 关系表、子查询等复杂业务场景,内置分布式查询优化能力。
4. 分布式事务
- 内建两阶段提交协议,兼顾高性能与数据安全。
- 提供普通模式和基于 MySQL 5.7 XA 的分布式事务支持,满足不同业务需求。
5. 易用性与社区活跃
- 提供详尽的中文文档、视频教程和公开课,开箱即用。
- 开源社区活跃,欢迎参与贡献和技术交流。
三、技术架构
dble 架构采用中间件转发层设计,前端对接应用流量,后端代理多台 MySQL 实例。其核心包括分片路由、SQL 解析与重写、分布式事务协调、查询优化、集群管理等模块。用户可通过配置灵活定义分片规则和高可用策略。
四、应用场景
- 互联网业务数据库扩容:解决大表分表、热点数据分片和弹性扩容难题。
- 金融、电商等高可用场景:平滑实现多活、高可用、在线维护。
- 兼容历史系统:无需改动原有业务 SQL,平滑迁移至分布式架构。
五、快速入门
dble 支持本地、Docker、Docker Compose 等多种部署方式,只需参考官方快速开始文档即可轻松上手。
六、社区与支持
七、总结
dble 以高性能、高可用、强兼容、易用性著称,是企业级 MySQL 分库分表和分布式数据库架构的理想选择。无论你是数据库运维、开发还是架构师,都能从 dble 项目中获得专业的分布式数据管理能力和一流的社区支持。