当前位置: 首页 > 面试题库 >

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

况浩邈
2023-03-14
问题内容

我有一个使用InnoDB存储引擎的MySQL表;它包含大约2M数据行。当我从表中删除数据行时,它没有释放分配的磁盘空间。运行该optimize table命令后,ibdata1文件的大小也没有减小。

有什么办法可以从MySQL回收磁盘空间?

我处境很糟;该应用程序在大约50个不同的位置运行,现在几乎所有位置都出现磁盘空间不足的问题。


问题答案:

MySQL不会减小ibdata1的大小。曾经 即使您optimize table用来从已删除的记录中释放已使用的空间,它也会在以后重用。

一种替代方法是配置服务器以使用innodb_file_per_table,但这将需要备份,删除数据库并还原。积极的一面是该表的.ibd文件在optimize table。之后被减少。



 类似资料:
  • 用于从不存在的VM中删除磁盘的所有在线说明都与旧的Azure UI有关,该UI不包含与新门户相同的菜单命令。因此,我需要使用新的Azure管理门户删除孤立磁盘的说明。旧门户的说明对此操作毫无价值。

  • 我有一个用户 - 一个通道关系(频道有一个头像,它存储在本地驱动器上,数据库存储照片的路径。删除通道时,从本地驱动器中删除文件的最佳位置和方式在哪里?在外观、服务或每天检查一次数据库是否包含实体并且文件夹与之对应,如果文件夹存在但实体不存在,则删除它? 目前我只是使用实体管理器删除,但它不会从本地驱动器中删除照片

  • 所以,当我尝试删除节点时,它不会从磁盘中删除文件。仅删除节点。下面是我所做的代码示例: 我读到必须调用垃圾收集器才能从磁盘中删除文件。我不知道该怎么做。

  • 本文向大家介绍如何从R数据框中删除空行?,包括了如何从R数据框中删除空行?的使用技巧和注意事项,需要的朋友参考一下 在调查或任何其他数据收集媒介期间,无法从所有单位获取所有信息。有时我们得到部分信息,有时什么也没有。因此,数据中的某些行可能完全为空白,而某些行可能具有部分数据。可以删除空白行,并使用有助于处理缺失信息的方法填充其他空值。 示例 考虑下面的数据框,它缺少一些行和一些值- 在这里,我们

  • viewuser.jsp 你好,我有问题在删除用户。它显示执行后输出失败。我认为它没有从ViewUser中获取用户名。请帮帮我.查询正常,数据库连接仍有问题,取用户名并删除。谢谢你!

  • null 结果:队列已从RabbitMQ GUI中删除,但当我试图通过已删除的RabbitMQ队列发送消息时,连接仍然有效。(con.isConnected()==true)我需要找到一种方法来侦听队列,如果它被删除,我不应该向已删除的队列发送任何消息。 注意:删除队列后,我不会重新启动RabbitMQ。 渠道创建: 正在发送消息: