0

我有一个关于从在 AWS 中运行的 mysql 获取一个巨大的表到本地机器的问题。我刚刚创建了一个大小为 2.3GB 的表,但是我只有 2 GB 的可用磁盘空间。这导致我什至无法将表转储到转储文件中,这会导致错误 28。然后我有两个选择。

  1. 清理具有 300+MB 可用空间的磁盘。我已经尝试删除所有可以删除的内容。我只有 2.5G 的数据库,但 mysqldb1 最多占用 4GB 大小,我不知道。

    ubuntu@ip-10-60-125-122:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvda1      8.0G  5.6G  2.0G  74% /
    udev            819M   12K  819M   1% /dev
    tmpfs           331M  184K  331M   1% /run
    none            5.0M     0  5.0M   0% /run/lock
    none            827M     0  827M   0% /run/shm
    /dev/xvdb       147G  188M  140G   1% /mnt
    
  2. 将我的表分成两个或更多不同的表,我可以将它们单独转储,然后再将它们放在一起。

我是 mysql 新手,希望能提供一个安全简单的解决方案。

最好的问候,如果我能做些什么来改善我的问题,请告诉我。

4

1 回答 1

0

如果您确定您实际上没有在数据库中存储那么多数据,您可能想在 SO 上查看其他问题:

MySQL InnoDB 从表中删除数据行后未释放磁盘空间

默认情况下,如果您删除数据,MySQL 不会减小文件大小。如果您的 MySQL 配置为按表文件,您应该能够通过优化数据库来减少数据。否则,您必须将所有数据传送到另一台机器并重新创建配置了每个表文件的数据库。

于 2013-02-16T22:08:05.877 回答