去重后需校验数据完整性,首先对比去重前后行数,确认删除量是否合理;2. 使用GROUP BY和HAVING验证关键字段(如email)无重复;3. 随机抽样比对原始与去重数据,确保保留记录准确;4. 添加唯一索引防止未来重复,若添加失败则说明仍存在重复值。

在mysql中完成去重操作后,数据校验是确保数据完整性与准确性的重要步骤。去重虽然能清理冗余记录,但若操作不当可能误删有效数据或遗漏重复项。因此,必须通过系统性的校验手段验证结果是否合理。以下是具体的数据校验操作指南。
检查去重前后数据量变化
对比去重前后的总行数,有助于初步判断去重效果是否符合预期。
说明:
例如:
SELECT COUNT(*) FROM user_info; -- 原始数量 -- 执行去重后 SELECT COUNT(*) FROM user_info_distinct; -- 去重后数量
验证关键字段唯一性
去重通常基于某些关键字段(如手机号、身份证号、邮箱等),需确认这些字段在结果中确实无重复。
建议操作:
- 使用 GROUP BY 和 HAVING 检查是否存在重复值。
- 以“email”为例:
SELECT email, COUNT(*) FROM user_info GROUP BY email HAVING COUNT(*) > 1;
如果查询返回空结果,说明该字段已完全去重。
抽样比对原始与去重数据
随机抽取部分记录,人工核对原始表与去重表中的内容是否一致,尤其关注主键、时间戳和业务关键字段。
操作方法:
- 从去重表中选取几条记录,反向查询原表是否存在对应数据。
- 确认保留的记录是否为最新或最完整的一条(如按创建时间取最大值)。
- 可借助 LIMIT 随机抽样:
SELECT * FROM user_info_distinct ORDER BY RAND() LIMIT 5;
检查索引与约束是否生效
为防止未来再次出现重复数据,建议在去重后添加唯一索引。
示例:
- 为 email 字段添加唯一约束:
ALTER TABLE user_info ADD UNIQUE INDEX uk_email (email);
若添加失败,说明仍存在重复值,需回头排查。
基本上就这些。去重后的校验不复杂但容易忽略,只要一步步核对数量、唯一性、样本和约束,就能有效保障数据质量。