Heim > Datenbank > MySQL-Tutorial > Wie kann ich den von MySQL InnoDB-Tabellen verwendeten Speicherplatz zurückgewinnen?

Wie kann ich den von MySQL InnoDB-Tabellen verwendeten Speicherplatz zurückgewinnen?

Linda Hamilton
Freigeben: 2025-01-02 20:07:39
Original
423 Leute haben es durchsucht

How Can I Reclaim Disk Space Used by MySQL InnoDB Tables?

Rückgewinnung von Speicherplatz in MySQL InnoDB

Beim Löschen von Datenzeilen aus einer MySQL-Tabelle mithilfe der InnoDB-Speicher-Engine wird der zugewiesene Speicherplatz nicht gelöscht automatisch freigegeben. Dies kann zu einer wachsenden Dateigröße von ibdata1 und potenziellen Speicherplatzproblemen führen.

Eine Methode, dieses Problem zu beheben, ist die Verwendung des Befehls „Tabelle optimieren“. Dieser Befehl verringert jedoch nicht die Größe der Datei ibdata1. MySQL behält diesen Speicherplatz absichtlich für eine mögliche Wiederverwendung in zukünftigen Vorgängen bei.

Um Speicherplatz von MySQL zurückzugewinnen, gibt es zwei Hauptansätze:

1. Tabelle löschen und neu erstellen:

  • Löschen Sie die vorhandene Tabelle.
  • Erstellen Sie eine neue Tabelle mit demselben Schema mit der Option ROW_FORMAT=COMPRESSED.
  • Fügen Sie die Daten erneut in die neue Tabelle ein.

Dieser Ansatz gibt den zugewiesenen Speicherplatz frei, benötigt jedoch eine Sicherung und Wiederherstellung.

2. Konfigurieren Sie innodb_file_per_table:

  • Bearbeiten Sie die MySQL-Konfigurationsdatei (my.cnf) und fügen Sie die folgende Zeile hinzu:

    innodb_file_per_table=1
    Nach dem Login kopieren
  • Starten Sie den MySQL-Dienst neu .

Diese Option erstellt eine separate .ibd-Datei für jede Tabelle in der Datenbank. Wenn Sie Datenzeilen löschen und „Tabelle optimieren“ ausführen, wird die Größe der .ibd-Datei für diese Tabelle reduziert.

Das obige ist der detaillierte Inhalt vonWie kann ich den von MySQL InnoDB-Tabellen verwendeten Speicherplatz zurückgewinnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage