继续使用employees数据库,这次我们基于上一个文章的理论,同样是分为三部分,分步深入探究如何优化查询语句。
快速得到最大值及该行数据
针对employees.employees表,我们想要找出最大值,有很多种方式:
select hire_date,emp_no
FROM employees e1
WHERE NOT EXISTS(
SELECT 1 FROM employees e2 WHERE emp_no>e1.emp_no
);
根据emp_no的最大值查找,该语句的explain为:
执行时间超时。
select hire_date,emp_no from employees order by emp_no LIMIT 1; //0.17s
select emp_no,hire_date FROM employees WHERE emp_no=(SELECT MAX(emp_no) FROM employees); //0.5s