mycat垂直分库、垂直分片:mycat的多表跨库的一次实战

mycat垂直分库:

userinfo库包括,表user、表company

userorder库包括:表order

涉及多表查询: 

配置如下:schema.xml配置如下:





	
			
		
select user()

跨库三个表以上查询会报错:

 /*!mycat:catlet=io.mycat.catlets.ShareJoin */ 

select user.username, company.companyname,order.ordername

from user inner join company on user.companyid = company.companyid

inner join order on order.userid = user.userid

 

报错提示: 

 

跨库多表查询:
抛异常invalid route in sql, multi tables found but datanode has no intersection

最近一些查询资料发现,mycat1.6.5支持两个表的跨库查询: http://www.iocoder.cn/MyCAT/two-table-share-join/

如下跨库sql能查出正确的结果。【注: 跨库查询注意注解的使用】/*!mycat:catlet=io.mycat.catlets.ShareJoin */

 /*!mycat:catlet=io.mycat.catlets.ShareJoin */ 

select user.username,=order.ordername

from user 

inner join order on order.userid = user.userid

 

主题继续探索: 1) 可以修改 mycat源码进行拓展, https://github.com/MyCATApache/Mycat-Server

                          2)自己修改自己的业务逻辑代码实现,如上最有两个表的跨库查询。

 

 

你可能感兴趣的:(java)