分布式表连接问题
Mycat提供了几种方式来解决表连接问题
使用全局表
全局表是一种冗余的表,每个节点都是全量的数据,有以下特性
- 全局表的插入、更新操作会实时在所有节点上执行,保持各个分片的数据一致性
- 全局表的查询操作,只从一个节点获取
- 全局表可以跟任何一个表进行join操作
在配置表的时候加上global就是全局表
1 | <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3"> |
ER Join
ER Join将子表存储位置依赖于主表,子表的记录与所关联的的父表记录存放在同一个数据分片上,为此解决了join的问题。
1 | <!-- order表在dn1和dn2上进行水平分表 rule是分片规则,在rule.xml中进行配置 --> |