我有大量的用户,所以我需要将数据库分割成n个碎片。为了继续这件事,我有以下选择-
- With the increase in shards and Users Code needed to be changed more often.
- If any specific User in shard has huge data It'd get difficult to separate out the shard.
所以,这是我能找到的三种方法,但都有一些问题。将MySQL表分割成碎片的替代或更好的方法是什么,这可以弥补将来碎片和用户数量的增加。
发布于 2019-05-10 04:37:01
我更喜欢1和2的混合:
如果碎片太满,则将所有具有某些散列号的用户迁移到另一个碎片。
如果您添加了一个碎片,将一些散列号迁移到它上--最好是从繁忙的碎片中迁移。
这迫使您为移动用户编写脚本,并使其健壮。一旦你有了它,很多其他的管理任务就变得“简单”了:
每个碎片都可以是服务器的HA集群(Galera、组复制等),以提高可靠性和读取规模。(分片给你写缩放。
需要有一种“迅速”将词典分发给所有客户的方法。
如果您在HA的三个不同的碎片中包含了每个散列,那么所有这些都能很好地工作。三人中的每一人都将在地理位置上保持稳健。词典将有4列,以说明副本在哪里。第四种将在迁徙期间使用。
https://stackoverflow.com/questions/56041915
复制相似问题