是否有关于数据库分片的文本或已知算法或策略?

Is there any text or known algorithms or strategies for Database sharding?

我正在构建一个可扩展的解决方案,因此需要对我的数据进行分片。 我知道我当前分片的具体使用图,基于此我想打破它们并根据该使用图创建新的分片。 [更高使用率的键范围被分解成更小的部分并分配给不同的机器以均衡节点间的负载]。

是否有任何 theory/text/algo 提供最有效的分片策略(在不破坏其 sequence/index 的情况下进行分片),如果它知道最常用的键范围。

分片algorithms/strategies和业务场景匹配更好

有一些规则的算法,如:Hash、Range、Mod、Tag、HashMod、Time等

也许我们需要更多的算法需要定制,例如:数据库分片使用user_id mod,[=30使用order_id mod =]分片。

也许你可以看看 Apache ShardingSphere,这个项目只是定义了一些标准的分片算法并且可以允许开发者定制。

相关文档为:https://shardingsphere.apache.org/document/current/en/dev-manual/sharding/

源代码仅供参考:https://github.com/apache/shardingsphere/blob/master/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.spi.ShardingAlgorithm