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

So stellen Sie HTTPS kostenlos auf Tencent Cloud bereit

Als ich kürzlich ein WeChat-Applet schrieb, erfor...

So deaktivieren Sie Webseitenstile mit dem Webentwickler von Firefox

Voraussetzung: Das Webentwickler-Plugin wurde inst...

Sieben verschiedene Farbschemata für das Website-Design-Erlebnis

Die Farbabstimmung beim Erstellen einer Website i...

Verwendung von Provide und Inject in Vue3

1. Erklärung von provide und inject Mit „Bereitst...

So fügen Sie Docker dynamisch Ports hinzu, ohne das Image neu zu erstellen

Manchmal müssen Sie während des Betriebs freigege...

So verwenden Sie Navicat zum Exportieren und Importieren einer MySQL-Datenbank

MySql ist eine Datenquelle, die wir häufig verwen...

Beispielcode zur Implementierung eines Musikplayers mit nativem JS

Dieser Artikel stellt hauptsächlich den Beispielc...

Vue implementiert Multi-Tab-Komponente

Um die Wirkung direkt zu sehen, wurde ein Rechtsk...

CentOS 7.x Docker verwendet die Overlay2-Speichermethode

Bearbeiten Sie /etc/docker/daemon.json und fügen ...

...

Eine kurze Diskussion darüber, ob CSS-Animationen durch JS blockiert werden

Der Animationsteil von CSS wird von JS blockiert,...

Tudou.com Frontend-Übersicht

1. Arbeitsteilung und Prozess <br />Bei Tud...