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

Eine kurze Analyse der Verwendung von watchEffect in Vue3

Vorwort Jeder sollte mit der Watch-API in vue2 ve...

Tutorial zur DHCP-Konfiguration in der CentOS7-Umgebung

Inhaltsverzeichnis Konfigurationsbefehlsschritte ...

Ausführliche Erläuterung der HTML-Grundlagen (Teil 1)

1. Das WEB verstehen Webseiten bestehen hauptsäch...

So implementieren Sie Seitensprünge in einem Vue-Projekt

Inhaltsverzeichnis 1. Erstellen Sie ein Vue-CLI-S...

Vollständige Schritte zur Deinstallation der MySQL-Datenbank

Der Vorgang zur vollständigen Deinstallation der ...

Zusammenfassung des fragmentierten Wissens zum Docker-Management

Inhaltsverzeichnis 1. Übersicht 2. Anwendungsbeis...

So ändern Sie den Hostnamen in Linux dauerhaft

Wenn Sie Ihren Hostnamen ändern möchten, können S...

Vue-Grundlagen-Tutorial: Bedingtes Rendering und Listen-Rendering

Inhaltsverzeichnis Vorwort 1.1 Funktion 1.2 So st...

Containerisierungstransformation für Docker-Großprojekte

Virtualisierung und Containerisierung sind zwei u...

Die unangemessenen MaxIdleConns von MySQL führen zu kurzen Verbindungen

1 Hintergrund Vor kurzem sind im Online-Geschäft ...

Lösung für die horizontale Bildlaufleiste im Iframe unter IE6

Die Situation ist wie folgt: (PS: Das rote Kästche...