如何设计可以动态扩容缩容的分库分表方案?
如何 设计 动态 方案 可以 扩容 分表 分库
2023-09-27 14:23:02 时间
问题
如何设计可以动态扩容缩容的分库分表方案?
分析
对于分库分表来说,主要是面对以下问题:
- 选择一个数据库中间件,调研、学习、测试;
- 设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表;
- 基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写;
- 完成单库单表到分库分表的迁移,双写方案;
- 线上系统开始基于分库分表对外提供服务;
扩容了,扩容成 6 个库,每个库需要 12 个表,你怎么来增加更多库和表呢?
这个是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都 ok 了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统,已经直接基于分库分表方案在搞了。
那么现在问题来了,你现在这些库和表又支撑不住了,要继续扩容咋办?这个可能就是说你的每个库的容量又快满了,或者是你的表数据量又太大了,也可能是你每个库的写并发太高了,你得继续扩容。
这都是玩儿分库分表线上必须经历的事儿。
停机扩容(不推荐)
这个方案就跟停机迁移一样,步骤几乎一致,唯一的一点就是那个导数的
相关文章
- 017_mac格式化硬盘,mac如何格式化硬盘
- 大厂的优惠券系统是如何设计的?
- 反人类设计是如何炼成的?
- 如何设计一个完善可用的服务框架
- 如何为移动应用SaaS ALM选择正解的方法和工具
- 在无边界时代,如何确保“网络边界”安全?
- 在物联网时代如何打造安全的数据中心?
- 如何设计一个底层埋点?
- 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?
- Redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?
- 如何从业务和平台两方面入手,设计更具可靠性的微服务?
- 汽车后市场如何进行电子商务模式
- 信息化、数字化时代的变局,商业智能BI未来发展前景如何?
- 专访体素科技 CEO 丁晓伟:医疗人工智能产品如何成为医生的“左膀右臂”?
- Android 如何快速找到在那个页面
- 企业如何选择适合自己的区块链?
- 【设计篇】36 # 如何理解可视化设计原则?
- 【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本