Kijk of ik momenteel verkeer vastleg met het algemene logboek:
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\
Nu zet ik het vastleggen van het algemene logboek hieronder uit, omdat de mijne bezig was met vastleggen:
SET GLOBAL general_log=0; -- stop logging
Ik VERPLAATS mijn logbestand naar een back-upmap en hernoem het naar GL_from_20160803_1420_to_20160806_1559
Er is weinig onduidelijkheid over de inhoud en het datum/tijdbereik van de opname die het bovenstaande bestand belichaamt.
Stel de nieuwe naam in voor het vastleggen van het logbestand (Begin segment voor bestandsnaam)
SET GLOBAL general_log_file='GeneralLogBegin_20160806_1559.log';
SET GLOBAL general_log=1; -- Start logging again
Voer een app van mij uit die verbinding maakt met de server, en General Log bevat:
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
Opmerking:mogelijk moet u
mysqladmin -u root -p flush-log
(wachtwoord gevraagd) om de logs uit de cache naar het bestand te spoelen. Trouwens, Sublime Text is geweldig voor het automatisch vernieuwen van een tekstbestand dat momenteel is geladen. Zoals een logbestand.
Dus mijn ChunkA
hierboven is de verbindingsstub van een nieuwe verbinding die binnenkomt. Het wordt aangestuurd door de commando's van het programma dat in gebruik is, wat dat ook mag zijn. Het is voorafgaand aan uw programmacommando's die u gewend bent en codeert. Als je voortdurend nieuwe verbindingen maakt, code uitvoert die je schrijft en de verbinding verbreekt, dan maken deze allemaal deel uit van de bagage. Je hebt geen controle over het optimaliseren ervan op een eenvoudige manier.
Wat u moet overwegen te doen, is het General Query-logboek in een productieomgeving UIT te schakelen. En alleen inschakelen tijdens de instellingen voor de foutopsporing en testomgeving. Als u het aan heeft, wordt uw stapel onnodig belast.