MySQL slow_log-Tabelle kann nicht in InnoDB-Engine geändert werden – detaillierte Erklärung

MySQL slow_log-Tabelle kann nicht in InnoDB-Engine geändert werden – detaillierte Erklärung

Hintergrund

Das Abrufen des langsamen Abfrageprotokolls von mysql.slow_log ist langsam, die Tabelle ist eine CSV-Tabelle und hat keinen Index.

Ich möchte einen Index hinzufügen, um den Zugriff zu beschleunigen, aber die CSV-Engine kann keine Indizes hinzufügen (die CSV-Engine speichert durch Kommas getrennten Text). Daher kann ich nur die Speicher-Engine ändern, um Indizes hinzuzufügen.

Die Tabelle mysql.slow_log kann in myisam geändert werden, jedoch nicht in innodb

mysql> globales slow_query_log=off festlegen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> Tabelle ändern mysql.slow_log engine=innodb;
FEHLER 1579 (HY000): Diese Speicher-Engine kann nicht für Protokolltabellen verwendet werden"
mysql> Tabelle ändern mysql.slow_log engine=myisam;
Abfrage OK, 33760 Zeilen betroffen (0,37 Sek.)
Datensätze: 33760 Duplikate: 0 Warnungen: 0

mysql.general_log kann nicht in innodb geändert werden

mysql> Tabelle ändern mysql.general_log engine=myisam;
Abfrage OK, 242956 Zeilen betroffen (2,41 Sek.)
Datensätze: 242956 Duplikate: 0 Warnungen: 0

mysql> Tabelle ändern mysql.general_log engine=innodb;
FEHLER 1579 (HY000): Diese Speicher-Engine kann nicht für Protokolltabellen verwendet werden"

Offizielle Dokumentation

Laut der offiziellen Dokumentation unterstützt die Protokolltabelle nur die CSV-Engine und die MyISAM-Engine.

Warum wird die InnoDB-Engine nicht unterstützt?

Auf welcher Grundlage erwägen Sie, InnoDB-Tabellen nicht zu unterstützen?

Fragte einen Freund

Ich vermute, dass die Protokolltabellen-Engine eine Menge Redo- und Undo-Ressourcen verbraucht.

Dies ist nicht notwendig. . . Diese Daten sind nicht wichtig. .

Speicher-Engine für Änderungsprotokolltabellen

SET @old_log_state = @@global.general_log;
GLOBAL festlegen general_log = "AUS";
ALTER TABLE mysql.general_log ENGINE = MyISAM;
SETZEN SIE GLOBAL general_log = @old_log_state;

Archivprotokolltabelle

VERWENDEN Sie MySQL;
Tabelle löschen, wenn general_log2 vorhanden ist;
Tabelle general_log2 erstellen wie general_log;
UMBENENNEN SIE DIE TABELLE general_log IN general_log_backup, general_log2 IN general_log;

siehe

Auswählen der Ausgabeziele für das allgemeine Abfrageprotokoll und das langsame Abfrageprotokoll

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Erläuterung der Konfiguration und Verwendung der MySQL-Speicher-Engine InnoDB
  • Zusammenfassung der Unterschiede zwischen den MySQL-Speicher-Engines MyISAM und InnoDB
  • Ein tiefer Einblick in die MySQL InnoDB-Speicher-Engine
  • Detaillierte Erläuterung des Index und der Speicherstruktur der MySQL InnoDB-Engine
  • Ändern Sie die MySQL-Datenbank-Engine in InnoDB

<<:  Vue3.0+vite2 implementiert dynamisches asynchrones Lazy Loading von Komponenten

>>:  Zusammenfassung häufig verwendeter Befehle für Linux-Dateioperationen

Artikel empfehlen

Einführung in MySQL-Isolationsebene, Sperre und MVCC

Ziel dieses Artikels ist es, die Beziehung zwisch...

Detaillierte Analyse, wann Tomcat das Antwortdatagramm zurückschreibt

Es stellt sich die Frage Diese Frage kam auf, als...

Detaillierte Erklärung der Lösung für das zu langsame Docker-Compose

Es gibt nur eine Lösung: die Quelle ändern! Die Q...

Detaillierter Prozess der NTP-Serverkonfiguration unter Linux

Inhaltsverzeichnis 1. Umgebungskonfiguration 1.NT...

Mehrere Möglichkeiten zum Sichern einer MySql-Datenbank

mysqldump-Tool-Sicherung Sichern Sie die gesamte ...

Sechs wichtige Selektoren in CSS (merken Sie sie sich in drei Sekunden)

Von: https://blog.csdn.net/qq_44761243/article/de...

Tutorial zum Upgrade von Centos7 auf Centos8 (mit Bildern und Text)

Wenn Sie ein Upgrade in einer formalen Umgebung d...

So verwenden Sie die Glog-Protokollbibliothek in einer Linux-Umgebung

Linux-Bibliothek generieren Die Linux-Version ver...

Tutorial zur MySQL-Optimierung: Große Paging-Abfrage

Inhaltsverzeichnis Hintergrund LIMIT-Optimierung ...

MySQL vollständig deinstallieren. Persönlicher Test!

MySQL sauber deinstallieren. Persönlich getestet,...

Design-Story: Der Wachmann, der sich Nummernschilder nicht merken kann

<br />Um die Fahrzeuge zu regeln, die in die...