核心结论
DISTINCT 用于消除投影结果中的重复行,LIMIT 用于从结果序列中截取一定数量的行,二者解决的问题不同。可靠分页必须配合确定性的 ORDER BY;若排序字段不能共同唯一标识一行,即使每次都使用相同的 LIMIT 和偏移量,也可能出现顺序漂移。即便排序键构成全序,并发插入或删除仍会改变偏移位置,使跨请求的偏移分页出现重复或遗漏。关系查询结果没有天然顺序,不能把某次执行碰巧形成的物理顺序当作稳定契约。
底层机制
从逻辑处理语义看,数据库先根据 FROM、连接及 WHERE 确定候选数据,再处理分组、聚合和投影,之后完成 DISTINCT、ORDER BY 及结果截