存在这样的情况:表结构和表中的数据在每个数据库中完全一致,如字典表,那么这时候应该怎么办?广播表这时候就应运而生了。
定义:指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中完全一致。
适用:数据量不大且需要与海量数据的表进行关联查询的场景,例如:字典表。
我们需要满足如下:
(1)在每个数据库表都存在该表以及表结构都一样。
(2)当保存的时候,每个数据库都会插入相同的数据。
开发步骤如下:
1 在ds0和ds1数据库中,分别添加表zidian,主键使用的是数据库默认的增长方式
2 在application.properties中添加如下配置:
#广播表规则列表,可设置多个,zidian就是数据库中表的名称
spring.shardingsphere.sharding.broadcast-tables[0]=zidian
运行结果如下
添加记录时,在ds0和ds1都会保存1条相同的数据。
当查询的时候,会随机的选择一个数据源进行查询。