Prüfen Sie, ob ich derzeit den Datenverkehr mit dem allgemeinen Protokoll erfasse:
SELECT @@general_log; -- 1 if capturing, 0 if not
-- for me, a 1. This means I have been capturing (good for development. Poor idea for Production)
SELECT @@general_log_file; -- file name for General Log if capturing.
-- for me: GeneralLogBegin_20160803_1420.log
SELECT @@datadir; -- the location of the general_log, and other logs
-- for me: C:\ProgramData\MySQL\MySQL Server 5.6\Data\
Jetzt schalte ich das Erfassen des allgemeinen Protokolls unten aus, weil meins erfasste:
SET GLOBAL general_log=0; -- stop logging
ICH VERSCHIEBE meine Protokolldatei in ein Sicherungsverzeichnis und benenne sie in GL_from_20160803_1420_to_20160806_1559
um
Der Inhalt und der Datums-/Zeitbereich der Erfassung, die die obige Datei verkörpert, sind kaum mehrdeutig.
Legen Sie den neuen Namen für die Erfassung der Protokolldatei fest (Startsegment für Dateiname)
SET GLOBAL general_log_file='GeneralLogBegin_20160806_1559.log';
SET GLOBAL general_log=1; -- Start logging again
Führen Sie eine App von mir aus, die eine Verbindung zum Server herstellt, und das allgemeine Protokoll enthält:
ChunkA:
160806 16:08:37 170 Connect [email protected] on stackoverflow
170 Query SHOW VARIABLES
170 Query SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())
170 Query SHOW COLLATION
170 Query SET NAMES latin1
170 Query SET character_set_results=NULL
170 Init DB my_db_name
Hinweis:Möglicherweise müssen Sie dies tun
mysqladmin -u root -p flush-log
(Passwortabfrage), um die Protokolle aus dem Cache in die Datei zu leeren. Übrigens, Sublime Text ist großartig für die automatische Aktualisierung einer aktuell geladenen Textdatei. Beispielsweise eine Protokolldatei.
Also mein ChunkA
Oben ist der Verbindungs-Stub einer neu hereinkommenden Verbindung. Er wird von den Befehlen des verwendeten Programms gesteuert, was auch immer das sein mag. Es ist vor Ihren Programmbefehlen, an die Sie gewöhnt sind, und zu codieren. Wenn Sie ständig neue Verbindungen erstellen, von Ihnen geschriebenen Code ausführen und die Verbindung trennen, gehört dies alles zum Gepäck. Sie haben keine Kontrolle darüber, sie auf einfache Weise zu optimieren.
Was Sie in Betracht ziehen sollten, ist das Deaktivieren des allgemeinen Abfrageprotokolls in einer Produktionsumgebung. Und nur während der Debug- und Testumgebungseinstellungen aktivieren. Wenn Sie es eingeschaltet haben, wird Ihr Stack unnötig belastet.