为了账号安全,请及时绑定邮箱和手机立即绑定

mysql 执行优化

mysql 执行优化

阿波罗的战车 2018-12-11 21:40:37
数据库有这么一张表格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表换成其他的有些表就不会出现以上的问题,但是有一部分表就是会有问题
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 498 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信