Mycat–理论–06–Mycat跨分片JOIN机制
1、功能简介
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/42ec7d3598d70949a55476888d2c23d3.png#pic_center)
2、MySQL端实现Join,Mycat端做合并
2.1、前提
在每一个分片库里,参与Join的多个表的数据符合JOIN规则
简单举例
某个用户的所有订单跟这个用户在同一个分片上
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a57348f74911cca833f20eab5fd37a02.png#pic_center)
2.2、支持的场景
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0e8ee292826ae44333f92fe5aae1b4b3.png#pic_center)
3、下推到Mycat端实现Join
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/eb786f25728e33ff6d868bbad03bf809.png#pic_center)
3.1、难点和热点问题
- 资源消耗比较大:内存+带宽
- 数据表比较大的情况下,目前没有好的解决方法
Mycat认为此问题有两个关键点:
- 不能实时计算,需要提前计算并缓存结果集
- 不能靠程序进行优化,需要依靠人脑技术(HBT:Human Brain Tech)