掌握MySQL分库分表分库分表中间件Sharding-Jdbc,真实表、逻辑表、绑定表、广播表,常见分片策略
在Sharding-Jdbc中,真实表指的是数据库中实际存在的物理表。逻辑表是在Sharding-Jdbc中定义的,用于抽象分片逻辑的概念。绑定表是指逻辑表和真实表之间的一种映射关系,一个逻辑表可以绑定到一个或多个真实表上。
广播表是一种特殊的逻辑表,它的每个数据节点都对应同样的真实数据。当执行数据库操作时,如果操作的是广播表,那么操作会广播到所有的数据节点。
以下是一个简单的使用Sharding-Jdbc配置逻辑表、绑定表和广播表的例子:
# 配置数据源
dataSources:
ds0:
url: jdbc:mysql://localhost:3306/ds0
username: root
password:
type: com.zaxxer.hikari.HikariDataSource
ds1:
url: jdbc:mysql://localhost:3306/ds1
username: root
password:
type: com.zaxxer.hikari.HikariDataSource
# 配置绑定表
tables:
t_order:
actualDataNodes: ds${0..1}.t_order_${0..1}
databaseStrategy:
standard:
shardingColumn: order_id
shardingAlgorithmName: t_order_inline
keyGenerateStrategy:
column: order_id
keyGeneratorName: snowflake
t_order_item:
actualDataNodes: ds${0..1}.t_order_item_${0..1}
databaseStrategy:
standard:
shardingColumn: order_id
shardingAlgorithmName: t_order_item_inline
# 配置分片键生成策略和分片算法
keyGenerators:
snowflake:
type: SNOWFLAKE
shardingAlgorithms:
t_order_inline:
type: INLINE
props:
algorithm-expression: t_order_${order_id % 2}
t_order_item_inline:
type: INLINE
props:
algorithm-expression: t_order_item_${order_id % 2}
# 配置广播表
broadcastTables:
- t_config
在这个配置中,t_order
和t_order_item
是绑定表,它们通过分片键order_id
进行数据分片,并且使用内置的分片算法。t_config
是广播表,对t_config
的操作会广播到所有数据节点。
请注意,这只是一个配置的示例,实际配置需要根据您的数据库环境和需求进行调整。
评论已关闭