请问:我把mysql的join改写成两条,但where条件遇到问题
比如:
sql = select * from order o join user u on u.user_id = o.user_id where u.type = '微信注册'
因为user 表被迁到其他的数据库,只能通过接口访问。
拆分成:
sql1 = select user_id from user where type = "微信注册";
sql2 = select * from order where user_id in (sql1取出的user_id ) limit 20 offset 0
当user表数据越来越多,sql1取出的user_id有上万条,这样在sql2里,user_id in (上万条),查询太慢了,请问有什么优化的方式?
觉得你这种业务需求很奇怪啊
这种关联查询要联查就不要拆,拆了就不要这种联查嘛
并且这种查微信注册的订单直接在订单里冗余一个订单或者用户类型就好了啊
这种跨实例的join不关用什么方式性能都不会好哪里去,引入中间件就把计算和缓存都放到了中间件层,很危险