微服务 教程
1085个小节阅读:196.5k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
遇到问题:
orders表分片了,那和他相关的orders_detail 表未分片, join联查的时候, master1正常查询出结果, master2上由于没有 orders_detail 表,则报错, 最后聚合结果肯定也是错误的。
将子表的存储位置依赖于主表,并且物理上紧邻存放因此彻底解决了JION的效率和性能问题,根据这一思路,提出了基于E-R关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上。
xxxxxxxxxx
<table name="orders" dataNode="dn1,dn2" rule="mod_rule" >
<childTable name="orders_detail" primaryKey="id" joinKey="order_id" parentKey="id" />
</table>
参数:
- childTable:子表
xxxxxxxxxx
create table orders_detail(
id int auto_increment,
order_id int,
detail varchar(200),
primary key(id)
);
xxxxxxxxxx
mycat restart
xxxxxxxxxx
insert into orders_detail(detail, order_id) values('detail1',1);
insert into orders_detail(detail, order_id) values('detail1',2);
insert into orders_detail(detail, order_id) values('detail1',3);
insert into orders_detail(detail, order_id) values('detail1',4);
insert into orders_detail(detail, order_id) values('detail1',5);
xxxxxxxxxx
select a.*,b.detail from orders a join orders_detail b on a.id=b.order_id;
1.Mycat技术中ER表解决___问题。
A 表字段多
B 表数据量大
C JOIN的效率和性能问题
D 数据节点多
2. Mycat技术中通过___标签配置ER表父子关系。
A child
B Table
C dataNode
D childTable
1=>C 2=>D