4.1 KiB
4.1 KiB
- 垂直拆分
- 垂直分库
- 按照业务对数据库进行拆分

-
# 读写分离类型,如: Static,Dynamic spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.type=Static # 写数据源名称 spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.props.write-data-source-name=master # 读数据源名称,多个从数据源用逗号分隔 spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.props.read-data-source-names=slave1,slave2 # 负载均衡算法名称 spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.load-balancer-name=alg_round
- 垂直分表
- 拆分表中某些不常用的列,或者是占用了大量空间的列
{:height 401, :width 749}-
# 标准分片表配置(数据节点) # spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes=值 # 值由数据源名 + 表名组成,以小数点分隔。 # <table-name>:逻辑表名 spring.shardingsphere.rules.sharding.tables.t_user.actual-data-nodes=server-user.t_user spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=server-order.t_order
- 垂直分库
- 水平拆分
- 水平分片
- 通过id区分
- 水平分片的id需要在业务层实现,不能依赖数据库的主键自增
- 单表超过500万行或者超过2G才进行拆分
-
#========================标准分片表配置(数据节点配置) # spring.shardingsphere.rules.sharding.tables.<table-name>.actual-data-nodes=值 # 值由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持 inline 表达式。 # <table-name>:逻辑表名 spring.shardingsphere.rules.sharding.tables.t_user.actual-data-nodes=server-user.t_user spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=server-order0.t_order0,server-order0.t_order1,server-order1.t_order0,server-order1.t_order1 # ##取模算法配置 #------------------------分库策略 # 分片列名称 spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-column=user_id # 分片算法名称 spring.shardingsphere.rules.sharding.tables.t_order.database-strategy.standard.sharding-algorithm-name=alg_inline_userid #------------------------分片算法配置 # 行表达式分片算法 # 分片算法类型 spring.shardingsphere.rules.sharding.sharding-algorithms.alg_inline_userid.type=INLINE # 分片算法属性配置 spring.shardingsphere.rules.sharding.sharding-algorithms.alg_inline_userid.props.algorithm-expression=server-order$->{user_id % 2} # 取模分片算法 # 分片算法类型 spring.shardingsphere.rules.sharding.sharding-algorithms.alg_mod.type=MOD # 分片算法属性配置 spring.shardingsphere.rules.sharding.sharding-algorithms.alg_mod.props.sharding-count=2 # ##哈希取模分片 #------------------------分表策略 # 分片列名称 spring.shardingsphere.rules.sharding.tables.t_order.table-strategy.standard.sharding-column=order_no # 分片算法名称 spring.shardingsphere.rules.sharding.tables.t_order.table-strategy.standard.sharding-algorithm-name=alg_hash_mod #------------------------分片算法配置 # 哈希取模分片算法 # 分片算法类型 spring.shardingsphere.rules.sharding.sharding-algorithms.alg_hash_mod.type=HASH_MOD # 分片算法属性配置 spring.shardingsphere.rules.sharding.sharding-algorithms.alg_hash_mod.props.sharding-count=2 # 算法雪花 -
//@TableId(type = IdType.AUTO)//依赖数据库的主键自增策略 @TableId(type = IdType.ASSIGN_ID)//分布式id - 分片策略
- 行表达式
- 取模
- 哈希取模
- 雪花算法
- 配置选项
- 分库策略
- 分片列
- 分片算法
- 分表策略
- 分布式序列策略
- 绑定表配置
- 配置以后关联查询不会出现笛卡尔积
- 分库策略
- 水平分片