Heim > Datenbank > MySQL-Tutorial > Wie kann ich meine MySQL InnoDB-Speicher-Engine bereinigen und verkleinern?

Wie kann ich meine MySQL InnoDB-Speicher-Engine bereinigen und verkleinern?

Mary-Kate Olsen
Freigeben: 2024-12-18 22:09:17
Original
215 Leute haben es durchsucht

How Can I Clean Up and Shrink My MySQL InnoDB Storage Engine?

MySQL InnoDB Storage Engine Cleanup

Um eine MySQL InnoDB Storage Engine zu bereinigen und Daten aus gelöschten Tabellen zu entfernen, befolgen Sie diese Schritte:

InnoDB-Architektur verstehen

InnoDB speichert sechs Arten von Informationen in der ibdata1-Datei:

  • Tabellendaten
  • Tabellenindizes
  • MVCC-Daten (Multiversioning Concurrency Control)
  • Tabellenmetadaten (Datenwörterbuch)
  • Doppeltes Schreiben Puffer
  • Puffer einfügen

Können Sie OPTIMIZE TABLE ausführen?

Die Verwendung von OPTIMIZE TABLE für eine in ibdata1 gespeicherte InnoDB-Tabelle hat zwei Auswirkungen:

  • Es erstellt die Daten und Indizes der Tabelle zusammenhängend innerhalb der Datei.
  • Es lässt ibdata1 wachsen, indem die geänderten Daten und Indizes angehängt werden.

Können Sie OPTIMIZE TABLE mit innodb_file_per_table ausführen?

Wenn diese Option aktiviert ist, erstellt OPTIMIZE TABLE separate .ibd-Dateien für jede InnoDB-Tabelle. Diese Trennung trennt zwar Daten und Indizes von ibdata1, entfernt jedoch keine Datenwörterbucheinträge aus ibdata1.

InnoDB-Infrastrukturbereinigung

So verkleinern Sie ibdata1 und entfernen unnötige Daten:

  1. Speichern Sie alle Datenbanken in einer SQL-Textdatei (SQLData.sql).
  2. Alle Datenbanken außer mysql und information_schema löschen. Benutzerberechtigungen beibehalten.
  3. Setzen Sie innodb_fast_shutdown auf 0, um Transaktionsänderungen zu löschen.
  4. MySQL herunterfahren.
  5. Ändern Sie my.cnf (oder my.ini) damit Einstellungen:

    • innodb_file_per_table
    • innodb_flush_method=O_DIRECT
    • innodb_log_file_size=1G (stellen Sie sicher, dass es 25 % beträgt innodb_buffer_pool_size)
  6. Dateien ibdata und ib_logfile löschen.
  7. MySQL starten.
  8. SQLData.sql importieren.

Nach diesem Vorgang wird ibdata1 enthalten nur Tabellenmetadaten und einzelne InnoDB-Tabellen werden in separaten Dateien mit den Erweiterungen .frm und .ibd gespeichert. Mit OPTIMIZE TABLE kann dann die .ibd-Datei der Tabelle verkleinert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich meine MySQL InnoDB-Speicher-Engine bereinigen und verkleinern?. 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