gpt4 book ai didi

mysql - 比较2个大sql文件,找不同点恢复数据

转载 作者:可可西里 更新时间:2023-11-01 06:50:45 26 4
gpt4 key购买 nike

我有 2 个大型 SQL 文件,每个大约 8GB。但是,在最新的备份中,我发现有一个文件丢失了 300MB 的数据。

我只是想比较丢失了哪些数据,这样我就可以检查丢失的是临时数据还是重要数据。

在 Ubuntu 14.04 上通过差异比较两个文件时,我总是遇到内存分配错误。我也尝试过其他允许内存以外的解决方案等等,但仍然没有帮助。

我想将 sql1 中存在但 sql2 中丢失的所有数据收集到新文件 sql3 中。

请帮忙!

编辑:我最近从 Simple MySQl-Server 迁移到 Percona XtraDB Cluster,在此过程中,很多表从 MyISAM 转换为 INNODB。那么,这会是 mysqldump SQL 文件减少 300MB 的原因吗?我严重怀疑这一点,因为一个 SQL 将是一个 SQL,但是 INNODB SQL 代码在任何情况下都会减少吗?对此的专家建议会有所帮助。

最佳答案

在处理大量数据时,SQL 转储比较非常困难。我会尝试以下操作:

  1. 将每个SQL文件数据导入自己的数据库
  2. 使用指示的方法之一 here比较数据库内容(我假设模式是相同的)。例如。 Toad for MySql

这种比较方式应该更快,因为当数据存储到数据库中时,数据操作要快得多,而且还具有丢失数据可以轻松使用的优势。例如。

SELECT *
FROM db1.sometable
WHERE NOT EXISTS (SELECT 1
FROM db2.sometable
WHERE db1.sometable.pkcol = db2.sometable.pk2)

将以方便的方式返回确切的缺失信息。

关于mysql - 比较2个大sql文件,找不同点恢复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42640420/

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