So bereinigen Sie eine InnoDB-Speicher-Engine
Trotz ihrer Vorteile kann die InnoDB-Speicher-Engine mit Daten aus gelöschten Tabellen überladen werden, was möglicherweise zu einer Aufblähung führt die Datenbank im Laufe der Zeit. Um diese unnötigen Daten zu bereinigen und die Datenbankeffizienz aufrechtzuerhalten, befolgen Sie diese Schritte:
Schritt 1: Datenbankdaten sichern
Exportieren Sie die gesamte Datenbank mit mysqldump in eine SQL-Textdatei . Sie können beispielsweise eine Datei mit dem Namen SQLData.sql erstellen.
Schritt 2: Datenbanken löschen
Alle Datenbanken außer mysql und information_schema löschen. Stellen Sie sicher, dass Sie über alle Benutzerberechtigungen verfügen, indem Sie das MySQL-Verzeichnis an einen Sicherungsspeicherort (/var/lib/mysql_grants) kopieren.
Schritt 3: Transaktionsänderungen löschen
Führen Sie aus Befehl SET GLOBAL innodb_fast_shutdown = 0; um alle verbleibenden Transaktionsänderungen zu löschen.
Schritt 4: Herunterfahren und Konfiguration ändern
Fahren Sie MySQL herunter und fügen Sie die folgenden Zeilen zu Ihrer /etc/my.cnf-Datei hinzu:
[mysqld] innodb_file_per_table innodb_flush_method=O_DIRECT innodb_log_file_size=1G innodb_buffer_pool_size=4G
Schritt 5: Aufräumen Dateien
Löschen Sie die Dateien ibdata und ib_logfile aus Ihrem MySQL-Datenverzeichnis.
Schritt 6: Starten Sie MySQL neu
Starten Sie MySQL neu, um ibdata1 und ib_logfile* neu zu erstellen. Dateien.
Schritt 7: Daten importieren
Importieren Sie die zuvor gespeicherte SQLData.sql-Datei, um Ihre Datenbankdaten wiederherzustellen.
Nach Abschluss dieser Schritte ibdata1 enthält nur Tabellenmetadaten, während jede InnoDB-Tabelle unabhängig gespeichert wird. Durch Ausführen von OPTIMIZE TABLE werden nun die Tabellendateien (/var/lib/mysql/mydb/mytable.ibd) effektiv verkleinert.
Das obige ist der detaillierte Inhalt vonWie kann ich meine InnoDB-Speicher-Engine effizient bereinigen, um die Datenbankleistung zu verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!