MySQL InnoDB gibt nach dem Löschen von Datenzeilen aus der Tabelle keinen Speicherplatz frei
P粉148434742
P粉148434742 2023-10-15 00:02:19
0
2
721

Ich habe eine MySQL-Tabelle, die die InnoDB-Speicher-Engine verwendet; sie enthält etwa 2 Millionen Datenzeilen. Wenn ich Datenzeilen aus der Tabelle lösche, wird der zugewiesene Speicherplatz nicht freigegeben. Auch nach der Ausführung des Befehls optimize table verringerte sich die Größe der Datei ibdata1 nicht.

Gibt es eine Möglichkeit, Speicherplatz von MySQL zurückzugewinnen?

Ich bin in einer schlechten Situation; die App läuft an etwa 50 verschiedenen Standorten und jetzt geht mir an fast allen davon der Speicherplatz aus.

P粉148434742
P粉148434742

Antworte allen(2)
P粉183077097

我自己也遇到了同样的问题。

发生的情况是,即使删除数据库,innodb 仍然不会释放磁盘空间。我必须导出,停止mysql,手动删除文件,启动mysql,创建数据库和用户,然后导入。感谢上帝,我只有 200MB 的行,但它节省了 250GB 的 innodb 文件。

设计失败。

P粉340980243

MySQL 不会减小 ibdata1 的大小。曾经。即使您使用优化表来释放已删除记录所使用的空间,它稍后也会重用它。

另一种方法是将服务器配置为使用 innodb_file_per_table,但这需要备份、删除数据库和恢复。积极的一面是,在 优化表格

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage