网站内容更新方案(最近被人问到一个问题:数据库表的数据规模达到了上亿 )

优采云 发布时间: 2022-01-21 04:17

  网站内容更新方案(最近被人问到一个问题:数据库表的数据规模达到了上亿

)

  最近有人问一个问题:数据库表的数据规模已经达到了上亿。早期没有分库分表,性能瓶颈已经出现。现在急需做横向数据分片操作,但是因为业务服务无法停止,为什么呢?计划?

  听到这个问题的那一刻,我的思绪顿住了,然后我慌张的说出了这个计划。后来发现我说的方案很笼统。其实是有计划的吧?以可接受的成本。让我们开始头脑风暴吧!

  1.锁表,将数据用工具导出,然后再导入。

    这个方案应该是最烂的方案,各种不满足要求。锁表意味着不能写入数据,违背了初衷,该方案直接PASS掉。

  2.利用数据库的Binlog机制,搭建Slave服务器实现。

乍一听挺高大上的,其实还是很破的一个方案。原因有二,第一:如果早期的数据库服务没有开启binlog机制,那这个方案不就凉了?第二:binlog是有时效的,除非真的设置为永久保存,那么大的数据量,大概率是不会设置永久保存的。所以,该方案也是直接PASS。

  3.binlog机制+SQL迁移。比如A表的特征字段是id(比如是自增ID)。我们写个程序,将小于position的数据利用SQL的形式慢慢迁移,并且记录下最后一个id所对应的binlog的position位置,然后利用binlog机制,实时同步后续的数据。最终,他们会达到一致。

这个方案是可行的,不过需要有人对binlog比较熟悉,而且有一定的代码量。

  4.还有没有其他方案?当然有了!经过上面的分析可以得知,从同步这个行为上来分类,需要同时具备两种方案……

所以,请你补充下。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线