分页查询按时间排序导致数据丢失问题

文章讨论了大数据量下分页查询可能导致的数据丢失问题,原因是创建时间精确度不足。解决方法是采用毫秒级时间戳,并通过SQL更新存量数据。同时提及了动态增删操作也可能引发重复或遗漏。文章还推荐了其他资源来处理类似问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照创建时间排序的分页查询在数据量大时可能会造成分页时数据丢失

原因:创建时间仅到时分秒,因此可能会有多条数据的创建时间相同,导致排序混乱,从而在分页时造成个别数据未查询到

解决方式:可将创建时间精确到毫秒,类型改为timestamp(6)

对于存量数据的创建时间增加毫秒值sql如下:

update  xxx set create_date = create_date + age(clock_timestamp()::timestamp(6), clock_timestamp()::timestamp(0)) 

即生成一个精确到秒和精确到毫秒的当前时间,将它俩的差值拼接在原有的存量数据上

另外引起数据分页查询重复或丢失也可能是数据的动态增删导致:

可参考以下作者文章:

数据库动态增删数据,导致分页查询数据出现重复或遗漏的问题分析及解决方案_分页查询有条件,第二页的时候漏数据-优快云博客

分页查询出现数据重复或丢失,你遇到过吗? - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值