问题描述
有一个功能更新数据库时在生产环境下突然存在部分记录未被更新,需要把所有的记录更新,采取的是分页进行更新,但是每次更新以后都会出现部分业务没有被更新。
排查过程
1、测试环境重现问题:在测试环境重现问题,发现测试环境也有这个问题。
2、首先怀疑是逻辑缺陷,在本地进行debugger发现数据正常更新。
3、把分页循环中把查询到的数据进行逐个打印,发现这些未更新的数据,根本未被查询出来,但是这些数据又是满足条件的,这样就比较具有迷惑性。
原因分析:
根据上述的排查出的结果推断,有可能是分页出了问题,导致部分数据根本没有查询出来。
解决方案:
在查询语句中添加排序条件,这样就能够避免分页混乱的情况
order by id desc