Mybatis MySQL数据库分页查询出现重复数据

MySQL分页查询出现重复数据

情景(situation):
  今天在生产环境,业务同事导出文件时遇到了出现重复数据的问题。因为之前这个功能是我和我带的外包同事一起做的,所以很熟悉这块代码。经过线上操作核对,和代码检测,发现线上查询确实出现了重复数据,而导出文件出现重复数据是因为导出功能后面使用的接口是我提供的分页接口。通过代码分析,基本确认后台应用端代码应该是没有问题的,那么问题就出现在我提供接口的微服务模块。

任务(task):
  接下来的任务就是找出问题所在。然后就开始分析我微服务模块的代码,经过仔细检查,发现代码逻辑层面是没有问题的,因为前几页的分页都是成功的,但是问题出现在后续几页的数据中,而且在这几页之后的数据又是正常的。那也就是中间那些数据出现了重复。
  通过运维同事查看数据库,发现数据库中对应的数据并没有出现重复,排除了数据插入重复的可能,也就是数据写入判重的代码没有问题。
  此时,通过观察重复数据,发现一个特征,也就是重复数据的配置时间(config_tm)字段值都相同,而这个字段是当时需要说明上要求,数据按照修改时间倒叙排列,所以当时取了这个字段做排序。通过网上搜索MySQL分页数据重复,找到了相关问题,也有人遇到了这个问题。到这里我们大概找到了问题的解决方案,但是秉持严谨的工作态度,接下来准备在测试环境重现这个问题。

行动(action):
  经过在测试环境构造有相同配置时间的测试数据,我们顺利的重现了这个问题。解决问题的方式也很简单,就是在

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值