分页与WHERE子句谁先执行?MySQL大数据场景技术疑问
MySQL分页与WHERE子句的执行顺序解答
WHERE子句会优先于分页(LIMIT)执行,具体执行流程如下:
- 第一步:执行
WHERE name like 'Sl%',从SALES表中筛选出所有name以'Sl'开头的记录; - 第二步:对筛选后的结果集,按照
name DESC规则排序; - 第三步:最后执行
LIMIT 1,2,从排序后的结果里跳过第1条记录,获取接下来的2条数据(注意:MySQL的LIMIT起始索引从0开始计数)。
之所以遵循这个顺序,是因为分页操作是对已完成筛选、排序的结果集做截取,如果颠倒顺序先分页再筛选,得到的结果会完全不符合预期,数据库执行引擎也会按此逻辑保证查询结果的正确性。
内容的提问来源于stack exchange,提问作者java beginner
相关产品推荐
相关产品推荐

