Mysql 导出的数据库具有不同的大小

Mysql 导出的数据库具有不同的大小,mysql,mysqldump,Mysql,Mysqldump,如果我用phpmyadmin导出一个数据库,它的大小是18MB 如果我使用这个命令从终端导出它,大小只有11MB /usr/bin/mysqldump--opt-u root-ppassword${DB}|gzip>${DB}.sql.gz 你能解释一下为什么吗?是因为--otp参数吗 如何确保数据库已成功导出?我应该检查一下吗。。但这并不是一个可靠的评估。感谢您提供的详细信息,关于尺寸可能不同的原因,有多种可能性。假设phpMyAdmin的输出也被gzip压缩(否则差异的明显原因是一个被压缩,

如果我用phpmyadmin导出一个数据库,它的大小是18MB

如果我使用这个命令从终端导出它,大小只有11MB

/usr/bin/mysqldump--opt-u root-ppassword${DB}|gzip>${DB}.sql.gz

你能解释一下为什么吗?是因为--otp参数吗


如何确保数据库已成功导出?我应该检查一下吗。。但这并不是一个可靠的评估。感谢您提供的详细信息,关于尺寸可能不同的原因,有多种可能性。假设phpMyAdmin的输出也被gzip压缩(否则差异的明显原因是一个被压缩,另一个没有),以下内容可能会在一定程度上影响大小:

  • INSERT语句的不同顺序导致数据压缩性的差异
  • 一个使用扩展插件,另一个仅使用标准插件(考虑到大小的差异,这似乎最有可能)
  • phpMyAdmin导出工具添加的更多注释
  • 等等

我建议查看导出以确定完整性(可能会将其恢复到测试数据库中,并验证所有表上的行数是否为

),根据您提供的详细信息,有多种可能解释大小可能不同的原因。假设phpMyAdmin的输出也为gzip(否则,造成差异的明显原因是一个压缩,另一个不压缩),以下因素可能会在一定程度上影响尺寸:

  • INSERT语句的不同顺序导致数据压缩性的差异
  • 一个使用扩展插件,另一个仅使用标准插件(考虑到大小的差异,这似乎最有可能)
  • phpMyAdmin导出工具添加的更多注释
  • 等等

我建议查看导出以确定完整性(可能会将其恢复到测试数据库,并验证所有表上的行数是否为

我没有足够的点数进行注释,因此我将在这个答案中添加注释

如果您查看phpmyadmin导出和mysqldump中导出文件的未压缩内容,它们将大不相同

您可以使用diff来比较两个sql文件:

diff file1.sql file2.sql

然而,根据我的经验,这在这种情况下是没有帮助的

您只需在您喜爱的编辑器中打开这些文件并进行比较,就可以自己查看

正如Iridium在前面的回答中提到的,插入的使用可能不同。我创建了两个新的空数据库并导入到每个数据库中(通过phpmyadmin)——上面提到的两个导出之一(一个来自phpmyadmin,另一个通过mysqldump)

使用mysqldump导出文件的导入重新创建了包含151个表和1484个查询的数据库

使用phpmyadmin导出文件的导入重新创建了包含151个表和329个查询的数据库


当然,这些数字只适用于我的例子,但它似乎与铱之前所说的一致。

我没有足够的分数来评论,所以我在这个答案中添加了我的评论

如果您查看phpmyadmin导出和mysqldump中导出文件的未压缩内容,它们将大不相同

您可以使用diff来比较两个sql文件:

diff file1.sql file2.sql

然而,根据我的经验,这在这种情况下是没有帮助的

您只需在您喜爱的编辑器中打开这些文件并进行比较,就可以自己查看

正如Iridium在前面的回答中提到的,插入的使用可能不同。我创建了两个新的空数据库并导入到每个数据库中(通过phpmyadmin)——上面提到的两个导出之一(一个来自phpmyadmin,另一个通过mysqldump)

使用mysqldump导出文件的导入重新创建了包含151个表和1484个查询的数据库

使用phpmyadmin导出文件的导入重新创建了包含151个表和329个查询的数据库


当然,这些数字只适用于我的示例,但它似乎与铱星之前所说的一致。

只是一个愚蠢的问题:您的phpmyadmin转储文件也被压缩了吗?更喜欢mysqldump,更好的转储文件,相信我,至少他们知道当您有依赖项时如何排序插入文件,那么您可以导入转储文件吗?这是什么您无法导入的转储…@regilero是的,我确实打算使用mysqldump。但如何确保它正常工作?可能只是因为这是第一次,我有点害怕。是的,它是相同的压缩,无论如何,我正在比较提取的sql文件。@regilero:在导入过程中,您始终可以禁用外键检查,使导入顺序无关。@Marc B:或者您可以使用mysqldump并避免添加技巧来回避问题:-)只是一个愚蠢的问题:你的phpmyadmin转储文件也被压缩了吗?更喜欢mysqldump,更好的转储文件,相信我,至少他们知道当你有依赖项时如何订购插入文件,所以你可以导入转储文件——什么是你不能导入的转储文件…@regilero是的,我确实要使用mysqldump。但是如何确保它正常工作呢?Probab只是因为这是第一次,我有点害怕。是的,它是相同的压缩,不管怎样,我正在比较提取的sql文件。@regilero:您可以在导入过程中禁用外键检查,使导入顺序不相关。@Marc B:或者您可以使用mysqldump并避免添加技巧来回避问题:-)不,这不是因为压缩,我在比较sql文件。因此,您建议的评估是检查行数。是否有任何自动工具来比较两个sql文件,并找出数据是否相同?不同的gzip级别也不同。一个可能是压缩速度,一个是压缩空间。因此,最后,我将较小的数据库导入了phpmyadmin与expor