专栏首页高级开发进阶【JavaP6大纲】MySQL篇:如何设计可以动态扩容缩容的分库分表方案?

【JavaP6大纲】MySQL篇:如何设计可以动态扩容缩容的分库分表方案?

如何设计可以动态扩容缩容的分库分表方案?

对于分库分表来说,主要是面对以下问题: 选择一个数据库中间件,调研、学习、测试; 设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表; 基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写; 完成单库单表到分库分表的迁移,双写方案; 线上系统开始基于分库分表对外提供服务; 扩容了,扩容成 6 个库,每个库需要 12 个表,你怎么来增加更多库和表呢? 这个是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都 ok 了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统,已经直接基于分库分表方案在搞了。 那么现在问题来了,你现在这些库和表又支撑不住了,要继续扩容咋办?这个可能就是说你的每个库的容量又快满了,或者是你的表数据量又太大了,也可能是你每个库的写并发太高了,你得继续扩容。这都是玩儿分库分表线上必须经历的事儿。

停机扩容(不推荐)

这个方案就跟停机迁移一样,步骤几乎一致,唯一的一点就是那个导数的工具,是把现有库表的数据抽出来慢慢倒入到新的库和表里去。但是最好别这么玩儿,有点不太靠谱,因为既然分库分表就说明数据量实在是太大了,可能多达几亿条࿰

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何设计可以动态扩容缩容的分库分表方案?

    这个方案就跟停机迁移一样,步骤几乎一致,唯一的一点就是那个导数的工具,是把现有库表的数据抽出来慢慢倒入到新的库和表里去。但是最好别这么玩儿,有点不太靠谱,因为既...

    IT技术小咖
  • 如何设计动态扩容缩容的分库分表方案?

    面试官:如何来设计动态扩容的分库分表方案? 面试官心理剖析: 这个问题主要是看看你们公司设计的分库分表设计方案怎么样的?你知不知道动态扩容的方案?

    用户7118337
  • 突破Java面试(48)-设计可动态扩容缩的分库分表

    这个你必须面对的事,就是当你已经弄好分库分表方案,测试也通过了,数据能均匀分布到各个库和表里去,而且接着你还通过双写方案上了系统,已经直接基于分库分表方案在搞了...

    JavaEdge
  • 【JavaP6大纲】MySQL篇:现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

    我先给你说一个最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂个公告,说 0 点到早上 6 点进行运维,无法访问。 接着到...

    java_wxid
  • 分库分表:TIDB,你是来抢生意的?不讲码德?

    如今硬件的性价比越来越高,网络传输速度越来越快,数据库分层的趋势逐渐显现,人们已经不再强求用一个解决方案来解决所有的存储问题,而是通过分层,让缓存与数据库负责各...

    狼王编程
  • 浅谈PHP与MySQL开发

    筑梦师winston
  • 我们在学习Flink的时候,到底在学习什么?

    后台很多小伙伴都在问Flink的学习路径,那么我们在学习Flink的时候,到底重点学习哪些东西呢?

    大数据技术与架构
  • 【DB宝54】NewSQL数据库之TiDB简介

    TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional ...

    小麦苗DBA宝典
  • 【JavaP6大纲】MySQL篇:为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分

    假如我们现在是一个小创业公司(或者是一个 BAT 公司刚兴起的一个新部门),现在注册用户就 20 万,每天活跃用户就 1 万,每天单表数据量就 1000,然后高...

    java_wxid

扫码关注云+社区

领取腾讯云代金券