数据库有这么一张表格User以及一张用户的日志表User_log想要根据日志查询用户于是有了这么一个sqlSELECT * FROM (SELECT * FROM User_log Order By create_time LIMIT 0, 50) JOIN User ONUser.user_id=User_log.user_id这个sql的思路是由于User表很大,所以直接子查询先查出50条log然后连表查到用户信息,但是结果发现效率有问题,explain之后发现mysql的执行顺序没有像我想象的一样先查出50条再join而是先join了再去查,导致User表被遍历了一遍。请问这是为什么?PS:1.mysql版本5.6.162.同样的sql在测试环境上不会有这种情况,测试环境mysql版本5.6.333.把log表换成其他的有些表就不会出现以上的问题,但是有一部分表就是会有问题
添加回答
举报
0/150
提交
取消