使用 shardingsphere-proxy 做 MySQL 的分库分表遇到的问题

查看 55|回复 5
作者:brand   
我使用 shardingsphere-proxy 给数据库的做了单库按月分表。
发现连接查询语句这样写,查询结果会丢掉了 b_id
SELECT a.*, b.id AS b_id FROM a LEFT JOIN b ON a.b_id = b.id;
如果这么写正常
SELECT a.id, a.name, b.id AS b_id FROM a LEFT JOIN b ON a.b_id = b.id;
没看到文档对这个地方有说明,不知道是不是 bug ,有没有其他人遇到同类问题。
另:大数量下有更好的分库分表方案吗?
Chinsung   
b.id 放前面或者升级下版本试试? sharding 最好不要用.*这样的预发,sharding 会把使用到的相关表缓存成自己的 meta 数据,后续表结构更新了的话,a.*是查不出来新字段的,而且有时使用.*还会导致 sharding 的 sql 解析出问题
qW7bo2FbzbC0   
https://vitess.io/ 试试这个或者 TiDB ,分布式的 MySQL 或者兼容 MySQL 语法的,基本管理起来都比 MySQL 的高可用复制管理要还要复杂一个层级
WDATM33   
这插件是小问题挺多的,还有不能把要分表的表名作为子查询的表,否则不会拼接月份。各种限制挺多,开发报表的时候真是蛋疼的不行
qizheng22   
不同版本的 shardingjdbc 差异还比较大。3.x ,4.x ,5.x ,其中 5.0 和 5.2 以上配置有也差异。
所以要提供一下版本。另外从 4.x 开始,shardingjdbc 强制不能跨库了。
zxkxhnqwe123   
shardingjdbc 版本差异非常大,小版本之间都是包名对不上的。复杂查询也别用分库分表了,直接同步到 es 或者 ch 里面去查吧,效率也高
您需要登录后才可以回帖 登录 | 立即注册

返回顶部