批量导入的数据翻页不起作用,公司发现前几页正常,中间几页数据一样,最后一页数据正常,这个问题先是一个人查了两天,然后两个人查了一天没查出原因
解决过程:
查看f12,发现请求的页码参数没有问题,问题缩减到 后端
后端定位到输出日志,发现sql分页也有页码,问题定位到sql上,但是分页是公共控件生成的,按理不会有问题,故方向一是排查公共控件
方向二,sql排查发现取消order by 后数据似乎正常了点,但不知道问题所在,而且排序是业务需求,无法取消
最后发现排序的时间字段是相同的(时间排序,但是因为是程序批量导入的,而且程序在导入时这个字段统一赋的值),导致sql分页数据分页不起作用,最后的解决办法是在批量导入时的时间加毫秒数
反思:
1。主要时间浪费在分析公共控件上,遇到问题不应该第一时间怀疑公共控件,应该重点分析生成的sql语句
2。分析sql语句时也花了大量时间,我也不知道为什么要这么长时间,可能中间又走了岔路
3。公司在重现时,使用的数据是手工添加的,不存在此类问题,所以当重现不了时,浪费时间在比较现场与公司的发布包上面,应该第一时间重现当时的操作环境(批量导入)
欢迎大家给出指导意见