通常来讲我们在对数据库进行分库分表时,可以根据数值型的不重复ID进行HASH取模定位到不同的库和不同的表,也可以根据时间字段按照时间范围来进行。
当使用时间来分库分表时,好处是,可以不停机进行数据扩容,坏处在于可能导致某个时间的数据特别多,某些时间的数据少,也就是分布不够均匀。
使用ID来进行分库分表,可以做到尽可能均匀,但是如果涉及到我需要增加库和表,就会涉及到要对数据全部rehash操作,这很有可能需要停机来进行数据迁移,这显然坏处也是足够明显。
我的问题是,在使用类似ID来进行分库分表,怎么样可以做到不停机的数据迁移?或者说有什么好的方式动态扩容?