在mysql中删除数据库后回收磁盘空间

发布于 2024-11-07 01:45:22 字数 156 浏览 2 评论 0原文

我创建了一些非常大的数据库,后来又删除了一些。我注意到我的磁盘空间没有恢复到我预期的程度。例如,我添加的最后一个数据库实际上用完了所有可用空间并中止,因此我删除了该架构。在此之前我有 12.4 GB 可用空间,现在我只有 7.52 GB 可用空间。
这是怎么回事?如何取回我的 ~5 GB?

I've created some very large databases and have since dropped a few. I've noticed my disk space has not recovered as much as I had expected. For instance, the last database I added actually used up all of my free space and aborted, so I dropped that schema. Before this I had 12.4 GB free, now I only have 7.52 GB free.
What's going on here? How do I get my ~5 GB back?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

星光不落少年眉 2024-11-14 01:45:22

来自 http://dev.mysql.com/ doc/refman/5.1/en/innodb-data-log-reconfiguration.html

目前,您无法从表空间中删除数据文件。要减小表空间的大小,请使用以下过程:

  1. 使用 mysqldump 转储所有 InnoDB 表。

  2. 停止服务器。

  3. 删除所有现有的表空间文件,包括 ibdata 和 ib_log 文件。如果您想保留信息的备份副本,请在删除 MySQL 安装中的文件之前将所有 ib* 文件复制到另一个位置。

  4. 删除 InnoDB 表的所有 .frm 文件。

  5. 配置新的表空间。

  6. 重新启动服务器。

  7. 导入转储文件。

Innodb 在数据文件本身内创建一个文件系统(“表空间”)。当数据被删除时,它永远不会“收缩”数据文件,因为文件内数据的重组可能代价高昂(不能保证删除的数据是在末尾,甚至是连续的)。通过如上所述重新创建数据库,它使文件与所有数据所需的大小相同,但不会更大。

From http://dev.mysql.com/doc/refman/5.1/en/innodb-data-log-reconfiguration.html:

Currently, you cannot remove a data file from the tablespace. To decrease the size of your tablespace, use this procedure:

  1. Use mysqldump to dump all your InnoDB tables.

  2. Stop the server.

  3. Remove all the existing tablespace files, including the ibdata and ib_log files. If you want to keep a backup copy of the information, then copy all the ib* files to another location before the removing the files in your MySQL installation.

  4. Remove any .frm files for InnoDB tables.

  5. Configure a new tablespace.

  6. Restart the server.

  7. Import the dump files.

Innodb creates a filesystem (the "tablespace") within the data files themselves. It never "shrinks" the data files when data is removed, since the reorganization of the data within the file could be costly (there's no guarantee that the data removed was at the end, or even contiguous). By recreating the database as described above, it makes the file as large as necessary for all the data, but no larger.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文