查询优化

查找最晚入职员工的所有信息

http://www.nowcoder.com/questionTerminal/218ae58dfdcd4af195fff264e062138f

逐步优化

  • 相关子查询 20ms
    • select * from employees where hire_date = (select max(hire_date) from employees);
  • 不相关子查询 15ms
    • select e1.* from employees e1 join (select hire_date from employees order by hire_date desc limit 1) e2 on e1.hire_date = e2.hire_date;
  • 左连接 19ms
    • select e1.* from employees e1 left join employees e2 on e1.hire_date < e2.hire_date where e2.emp_no is null;

结果表明:以上三种方法中,不相关子查询最快

全部评论
其实你用Limit可能会有BUG,因为可能最晚一天入职的员工有多个
4 回复 分享
发布于 2020-10-15 00:09
一个简单的查询你怎么不上天啊
1 回复 分享
发布于 2020-05-20 08:10
花里胡哨
1 回复 分享
发布于 2020-05-20 08:11
亲测43ms,不是15ms,而且最简单的desc测试34ms,洗洗睡吧
1 回复 分享
发布于 2021-03-11 23:10
自认为自己想的很全面
点赞 回复 分享
发布于 2020-05-20 08:11
想的倒是挺多的
点赞 回复 分享
发布于 2020-05-21 20:30
好家伙,49ms,莫非我们不是一个测试?
点赞 回复 分享
发布于 2021-03-27 05:06
负优化
点赞 回复 分享
发布于 2021-08-16 17:45
is null有啥用?
点赞 回复 分享
发布于 2021-08-29 20:06
好的,看到这个评论我就放心了
点赞 回复 分享
发布于 2022-03-20 17:51

相关推荐

10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
30 收藏 评论
分享
牛客网
牛客企业服务