如何计算InnoDB数据库所需的磁盘空间?

发布于 2024-10-06 15:11:07 字数 285 浏览 3 评论 0原文

我在 MySQL 中有几个带有 InnoDB 引擎的数据库。它们的文件系统总共有大约 30 GB 大小。几天前,我从这些数据库中删除了很多数据(~10-15 GB),但文件系统上的已用空间是相同的,并且从 information_schema.TABLES 中读取 data_length 和 index_length 给出了几乎旧的大小。

我转储了一个 3.3 GB 的数据库并将其导入到我的工作站上,只需要 1.1 GB(是的,它是 1:1 的副本)。那么,如果我将 InnoDB 数据库重新导入到新系统中,我该如何计算它所需的大小呢?

I have several databases in MySQL with InnoDB engine. All together they have around 30 GB size on filesystem. A couple of days ago, I removed a lot of data from those databases (~10-15 GB) but the used space on filesystem is the same and also reading data_length and index_length from information_schema.TABLES give almost the old size.

I dumped a 3,3 GB database and imported it on my workstation where it takes only 1,1 GB (yes, it is a 1:1 copy). So, how can I calculate the size a InnoDB database needs if I would reimport it in a new system?

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

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

发布评论

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

评论(2

败给现实 2024-10-13 15:11:07

Optimize your tables after deleting large amouts of data.
http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

魂牵梦绕锁你心扉 2024-10-13 15:11:07

InnoDB 不释放磁盘空间;这是一个皮塔饼。基本上,您可以通过删除数据库并从备份中恢复它来释放它(正如您偶然注意到的那样) - 请参阅 此处有示例

因此,您无法计算恢复备份后数据库有多大。 但是它永远不会比未备份的版本大(因为未备份的版本仍然有任何已删除数据的空间,而恢复的备份将没有有该空间) 。

使用每个表文件选项可以在一定程度上解决这个问题;这篇文章的第一个链接中有更多详细信息。

InnoDB doesn't free disk space; it's a PITA. Basically, you can free it by dropping the database and restoring it from a backup (as you've noticed by chance) - see here for examples.

So, you can't calculate how big a database will be after you restore a backup. But it will never be bigger than the un-backed up one (because the unbacked up version still has space from any deleted data and the restored backup will not have that space).

This can be worked around to some extent using the file per table option; more details in the first link from this post.

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