xhdocs
开发笔记

读写分离与分库分表

什么时候该拆,拆了之后查询怎么办

mysql的集群是主从复制

要通过ShardingSphere-JDBC来分配读写。

‍

1主2从举例

因为从库是只读的

所以是ShardingSphere-JDBC配置2从来读,自动分配

配置主库去写

‍

分表规则

‍

只说我了解的

id拆分

类似,id%4,这样,table_1: id1, table_2: id2, table_3: id3

时间,没具体了解,但是可是设置每月之类的

再就是雪花算法,算法本身可以包含表序列号

在我追问下,ai给出了如下方案

自定义分片算法(Class Based)

// 你的自定义路由逻辑
public String doSharding(Collection<String> availableTargetNames, PreciseShardingValue<Long> shardingValue) {
    long id = shardingValue.getValue();
    // 假设你从起始ID开始,每 50万 个 ID 换一张表
    // 或者更简单的:(id - 起始ID) / 500000
    long tableIndex = (id - START_ID) / 500000; 
    return "resource_" + tableIndex;
}

On this page