Logs i MySQL inkluderer: fejllogs, binære logs, generiske forespørgselslogs, langsomme forespørgselslogs osv. Her er to almindeligt anvendte funktioner: generel forespørgselslog og langsom forespørgselslog.
1) Langsomme forespørgselslogfiler:Log alle forespørgsler, der udføres i mere end long_query_time sekunder, eller som ikke bruger indekser
2) Generel forespørgselslog:Registrer de klientforbindelser, der er oprettet og udført.
1: Om MySQL langsom forespørgsel:
MySQLS langsomme forespørgselslog er en slags logning leveret af MySQL, som bruges til at registrere udsagn om, at svartiden overstiger tærsklen i MySQL, specifikt med henvisning til SQL med en køretid på mere end long_query_time værdi, som vil blive registreret i den langsomme forespørgselslog (logs kan skrives til filer eller databasetabeller; hvis ydelseskravene er høje, anbefales det at skrive filer). Som standard aktiverer MySQL-databasen ikke langsomme forespørgselslogs, og standardværdien for long_query_time er 10 (dvs. 10 sekunder, normalt sat til 1 sekund), det vil sige, at sætninger, der kører i mere end 10 sekunder, er langsomme forespørgselsudsagn.
Generelt forekommer langsomme forespørgsler i store tabeller (for eksempel har en tabel millioner af data), og felterne i forespørgselsbetingelserne er ikke indekseret; på nuværende tidspunkt vil felterne, der matcher forespørgselsbetingelserne, blive scannet i hele tabellen, hvilket tager tid at tjekke long_query_time.
Det er en langsom forespørgselssætning.
Spørgsmål: Hvordan kan jeg tjekke den aktuelle åbningsstatus for den langsomme forespørgselslog?
Indtast kommandoen i MySQL:
Følgende parametre mestres hovedsageligt:
(1) Værdien af slow_query_log er TIL for at aktivere den langsomme forespørgselslog, og FRA er for at slå den langsomme forespørgselslog fra.
(2) Værdien af slow_query_log_file er den optagede langsomme forespørgselslog til filen (bemærk: standardnavnet er hostname.log, uanset om den langsomme forespørgselslog er skrevet til den angivne fil, skal du angive output-logformatet for den langsomme forespørgsel som en fil, og den relaterede kommando er: vis variabler som '%log_output%'; for at se formatet på outputtet).
(3) long_query_time angiver tærsklen for langsom forespørgsel, det vil sige, hvis eksekveringstiden overstiger denne tærskel, er det en langsom forespørgselssætning, og standardværdien er 10 sekunder.
(4) log_queries_not_using_indexes Hvis værdien sættes til ON, vil alle forespørgsler, der ikke bruger indekset, blive registreret (Bemærk: Hvis log_queries_not_using_indexes kun er sat til ON og slow_query_log er sat til OFF, træder indstillingen ikke i kraft på dette tidspunkt, det vil sige, indstillingen træder i kraft, hvis værdien af slow_query_log sættes til ON) , som generelt midlertidigt aktiveres, når performance er stemt.
2. Generel forespørgselslog
Hvis værdien af general_log erON er tændt, forOFF er lukket(Slukket som standard).
Tjek formatet på den aktuelle langsomme forespørgselslog, som kan være FILE (en hostname.log gemt i en datafil i en digital database) eller en TABLE (mysql.general_log gemt i en database)
(Bemærk: Ovenstående kommando er kun effektiv på det nuværende tidspunkt, når MySQL-genstarter er ugyldige, hvis du vil have den til at træde permanent i kraft, skal du konfigurere my.cnf)
Renderingen af log-outputtet er som følger:
my.cnf-filen er konfigureret som følger:
general_log=1 #为1表示开启通用日志查询, en værdi på 0, indikerer den generiske logforespørgsel er lukket
log_output=FILE,TABLE# Sætter outputformatet for den generelle log til fil og tabel
|