GoDaddy Hjelp

Vi prøvde så godt vi kunne å oversette denne siden for deg. Den engelske siden er også tilgjengelig.

Gjennomgå langsomme MySQL -spørringer

Du har aktivert treg spørringslogging og har nå en logg å gjennomgå. Hvis du ikke har aktivert logging, kan du finne trinnene her .

Analyserer loggen

Loggplass:
/var/log/slow-queries.log
MERK: Hvis du ikke finner en logg på dette stedet, må du bekrefte oppføringen i my.cnf og at MySQL ble startet på nytt etter at endringen ble gjort.
Format:
# Tid: 210905 6:33:11 # Bruker @ Vert: dbuser [dbname] @ hostname [1.2.3.4] # Query_time: 12.116250 Lock_time: 0.000035 Rows_sent: 0 Rows_examined: 201565 use dbname; SETT tidsstempel = 1409898791; ... SENG SPØRSMÅL HER ...

Loggen kan være overveldende når du har dusinvis om ikke hundrevis av oppføringer i formatet ovenfor. For å gjøre loggen mer lesbar, bruk mysqldumpslow til å analysere loggen.

mysqldumpslow -r -a /var/log/mysql/mysqld.slow.log
Utdataene vil inneholde viktig informasjon som tid , rader og spørring .
Count: 2 Time = 20.54s (41s) Lock = 0.02s (0s) Rows = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2 Count: 1 Tid = 21.74s (21s) Lås = 0.01s (0s) Rader = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' BESTILL AV BY site_id DESC LIMIT 0,2 Count: 1 Time = 23,86s (23s) Lås = 0,20s (0s) Rader = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2

Når vi ser på eksempelet ovenfor, har vi ett spørsmål som har tatt 20-24 sekunder å kjøre. Dette medfører problemer med nettstedet ditt, alt fra treg innlastingstid til timeout -feil (endeløs spinning). Spørringen undersøker 12 547 802 rader. Et stort spørsmål (dvs. velg *) som kjøres på et bord med over 12 millioner rader, vil trolig føre til en dårlig brukeropplevelse. Hvis du optimaliserer spørringen (f.eks. Velg "salongbord") eller reduserer de undersøkte radene (dvs. arkiverer gamle data), vil spørringen bli raskere.

Hvis loggfilen er stor, kjører du mysqldumpslow og lagrer utdataene i en fil. Dette vil gjøre det lettere å gjennomgå med andre filmanipuleringsverktøy som grep eller find .

mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed

Neste trinn

Etter å ha gjennomgått den langsomme spørringsloggen, bør du ha en god idé om problematiske spørringer som må løses. Hvis nettstedet ditt fremdeles kjører sakte med MySQL som bruker høye ressurser, må du kanskje optimalisere MySQL for å utnytte serverens ressurser bedre.

Når du er ferdig med loggen, må du sørge for å deaktivere MySQL langsom spørringslogging . Hvis du lar loggingen være aktivert, tømmes MySQL -ressurser unødvendig og kan potensielt fylle disken din (med dårlige spørsmål).

Mer informasjon

Serverekspertene våre kan utføre disse trinnene mot et gebyr. For å lære mer om hostingtjenestene GoDaddy tilbyr, se vårHostingtjenester-meny .