大型数据库的MySQL备份似乎比原始MySQL数据库本身要小

8

我正在备份一个大小约为190GB的数据库。我想将数据库备份到本地文件中。这是我使用的命令:

mysqldump -u root -p tradeData > /db_backup/tradeData.sql

我的机器上有足够的空间。我尝试了很多次,没有错误,但是我始终得到一个大小约为122GB的结果文件。

有人备份大型数据库的经验吗?我的机器是Linux系统。


你说的数据库是在哪里?如何知道它有 190 GB?备份文件大小为 122GB,但是你怎么知道它不完整? - Giacomo1968
我使用这个材料来检查数据库的大小。 - Tianyang Che
2
这样做不能在您本地的数据库转储和实际系统中实现1对1的连接。实际的数据库具有仅在数据库中实际存在时才存在的索引和数据。 - Giacomo1968
1
明白了。我正在将备份文件导入数据库,然后比较它们的大小。 - Tianyang Che
刚刚添加了一份官方答案,解释得更好了。 - Giacomo1968
1
非常感谢。这非常有帮助。 - Tianyang Che
1个回答

9
使用类似 这里的SQL查询 这样的信息并不能给你一个本地数据库转储和实际系统中存在的东西之间的一对一连接。实际的数据库具有仅在数据库中实际为数据库时存在的索引和数据。正如 RolandoMySQLDBA 所解释的那样:

从转储文件大小来判断是很困难的,因为数据页和索引页的总大小可能远小于创建转储的 ibdata1 的大小。

所以我的猜测是,与裸转储相比,您的数据库包括 InnoDB 表等其他内容,这些内容会使数据库膨胀。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接