AWS RDS Serverless查询结果不一致问题求助
问题原因分析
- 核心问题出在排序规则不唯一:你仅用
last_name ASC作为排序条件,但last_name字段存在重复值。数据库对拥有相同last_name的记录,无法保证每次查询时的返回顺序完全一致。 - 当使用
OFFSET做分页时,哪怕没有数据变更,数据库本身也可能对重复排序值的记录采用不同的内部排序逻辑,这会导致这类记录的位置发生偏移,最终让id为92778的记录同时出现在不同页码的结果里。 - 修复方案:把主键
id作为第二排序条件,修改后的查询语句如下:
通过SELECT id FROM accounts ORDER BY last_name ASC, id ASC LIMIT 200 OFFSET 3600;last_name + id的组合排序,能确保每条记录的排序位置唯一且固定,分页时就不会再出现重复或遗漏数据的情况。
内容的提问来源于stack exchange,提问作者YarGnawh
相关产品推荐
相关产品推荐

