回答
在进行分库分表后,如果我们对业务的预估数据不准确,由于数据增长超出预期导致表再次不够用了,那么这时应该怎么办呢?
遇到这种情况我们首先需要考虑的是能否利用一些常规手段,如历史数据归档或者清理不必要的数据,通过这样的常规手段来减少表的数据量,可以参考这篇文章:
如果常规的方式不行,那就只能进行二次分表了。
二次分表我们主流的做法是选择水平双倍扩容法,即在原来的基础上扩大一倍,例如原来表为 64 张,此次扩容则是 128 张。为什么选择双倍呢?可以参考这篇:分库分表时为什么数量都推荐使用 2 的幂次方?
扩容简单,但是扩容后的工程量就比较大了,我们需要更新分表算法、进行数据迁移,在数据迁移的过程中我们还需要考虑考虑到业务的连续性,最关键的是如何做到无损、无缝、平滑的迁移。
数据迁移可以参考这篇文章:单库系统如何迁移到分库分表系统?
所以,为了避免二次分表,我们还是需要尽可能地避免这种情况发生,在决定分库分表的时候就需要充分考虑未来业务的发展,一次性搞定!!