先给结论:不要用“导出条数看起来对”来判断分页完整性。更可靠的做法是拿一个能独立复算的总量做对照,再检查分页边界是否有重叠或断档。当样本量小、你能逐页人工核对时,直接数页比对即可;当样本规模化、分页由脚本自动翻页时,必须换成“总量锚点+边界抽样”的组合检查,否则遗漏会藏在两次请求之间而不报错。
判断依据不是工具强弱,而是你能否拿到一个与分页无关的独立计数。
两种条件的分界很实际:只要总量来源和分页来自同一次查询快照,对账才成立;如果总量是缓存的旧值,而分页是实时结果,两者本来就会不等,这种差额不能当作遗漏。
具体动作分三步,每步的结果决定下一步怎么走。
这个顺序的价值在于:总量不等时,你得到的是“有遗漏”这个信号;边界清单才能告诉你遗漏在哪一段,从而决定是补抓某几页还是整批重来。
假设某次查询命中总量显示为 1000 条,脚本每次取 100 条,共翻 10 页。导出后得到 940 条,差 60 条。此时若直接重跑,可能仍然得到 940 条,因为问题可能出在翻页条件而非网络中断。按上面的动作,先看边界清单:如果第 4 页末条与第 5 页首条之间跳过了约 60 条标识,说明是翻页偏移在数据变动时错位;如果第 7 页与第 8 页首条相同,说明有整页重复,实际覆盖的区间比页数显示的更窄。两种现象的修补方式不同,前者要改用稳定排序键,后者要检查游标是否被复用。以上数字仅用于说明比较方法,不代表任何工具的实际表现。
样本小时成立的判断,规模化后往往失效,主要有三类例外。
需要说明的是,导出条数归零或抓取量骤降,并不能单独证明分页处理正确。它同样可能来自查询条件被改动、权限变化或结果集本身为空。把这些现象直接当成完整性通过的证据,是常见的误判。
如果分页由工具在服务端一次性完成、你只拿到最终文件,边界清单无从获取,总量对账也缺少独立来源,此时只能依赖导出文件自身的内部一致性,例如标识是否唯一、字段是否成组出现。这类检查能发现重复和明显缺失,但无法证明没有静默遗漏。遇到这种边界,应明确记录“完整性未独立验证”,而不是默认为通过。具体工具的导出机制和是否提供总量字段,需要以你实际使用的版本为准去核对,不要套用别处的结论。