gpt4 book ai didi

mysql - diff 2 大型数据库表

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:18 24 4
gpt4 key购买 nike

给定 2 个大表(假设有数亿行),每个表都有一个字符串列,您如何获得差异?

最佳答案

查看开源 Percona 工具包 --- 特别是 pt-table-sync公用事业。

它的主要目的是将 MySQL 表与其副本同步,但由于它的输出是协调两个表之间差异所必需的 MySQL 命令集,因此很适合比较两者。

它实际上在幕后做了什么有点复杂,它实际上使用不同的方法,具体取决于它可以告诉你的表(索引等)的内容,但其中一个基本思想是它执行快速 CRC32 校验和在索引 block 上,如果校验和不匹配,它会更仔细地检查这些记录。请注意,此方法比线性遍历两个索引并比较它们要快很多

不过,它只会让您完成部分工作。因为生成的命令旨在将副本与其主服务器同步,所以它们只是为所有不同的记录替换副本的当前内容。换句话说,生成的命令会修改记录中的所有 字段(而不仅仅是已更改的字段)。因此,一旦您使用 pt-table-sync 找到差异,您需要将结果包装在某种东西中,以通过比较记录中的每个字段来检查不同的记录。

但是 pt-table-sync 完成了您已经知道的困难部分:检测差异,非常 很快。它是用 Perl 编写的;来源应提供良好的面包屑。

关于mysql - diff 2 大型数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5839333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com