我有一条 SQL, 请问大佬们怎么优化, 或者说有什么更好的写法; 这里的优化指的是代码简洁, 并非查询速度优化;
PostgreSQL
伪代码
select * from table
where 条件
order by time
limit 10
OFFSET (
-- 主要用于获取 ID 在排序后序号
select 序号 from table
where id=参数
order by time
)
OFFSET的SQL与外层 SQL 除了查询数据不同, 其余完全一模一样,请问如何优化呢?
如果你感兴趣为什么有这条 SQL
通常分页使用 limit,page 直接给出了 OFFSET
但是会数据增加时,翻页可能会造成和上一页有重复数据
尝试解决方案是, 通过当前页最后一条数据的 ID 查询下一页
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…