Mycat测试之坑
之前线上系统并发量小,用单数据库实例节点就可以解决问题,最近压力有所上升,单节点经常遇到锁表的问题,数据库做过几次相关的优化还是老样子,就把数据库中间件的使用提上了日程。于是就开始了测试mycat的性能,做了几轮之后,性能还可以。但是忽略了一个重要的问题,测试都在单个schema下进行,今天偶然用到了跨库查询,结果就挂了。
问题还原
mycat配置多个schema,只能在单个schema下进行查询,即便按照标准sql写出跨库查询sql,还是不会识别schema,只能在当前schenma下查询,即mysql的1064错误。
1 | <schema name="testdb1"> |
官网方案
两个表都是不分片的表,但是位于不同的物理数据库上。也无法将某一批次的表做成全局表。即便做成全局表,也无法join成功。
支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
官网给出的解释是支持跨库2表join,在应用已基本完成的情况下,不想再重新整理sql了。
替换方案是换成了apache的shardingsphere试试,看着介绍还不错