Åpne serverens oppgavebehandling og se at CPU-prosessen alltid har vært 99 %, og visningen er opptatt av MySQL-prosessen, som har vært høy.
Utgangen fra prosessliste-kommandoen viser hvilke tråder som kjører, og du kan sjekke den nåværende driftsstatusen til databasen.
1. Gå til mysql/bin-katalogen og skriv inn mysqladmin prosessliste; 2. Start MySQL og skriv inn show processlist. Hvis du har SUPER-tillatelse, kan du se alle trådene, ellers kan du bare se trådene på kontoen din.
Betydningen og formålet med hver kolonne
id: En identifikator user: viser den nåværende brukeren, hvis den ikke er root, vil denne kommandoen kun vise SQL-setninger innenfor dine tillatelser. host: viser hvilken IP denne setningen kommer fra hvilken port db: Viser databasen som prosessen for øyeblikket er koblet til. kommando: Viser kommandoene som utføres av den nåværende tilkoblingen, vanligvis i dvale, spørre og koble til. tid: Tiden denne tilstanden varer, i sekunder. tilstand: Viser statusen til SQL-setningen som bruker den nåværende tilkoblingen, men kun en viss tilstand i utførelsen av setningen, en SQL-setning, er spørret, for eksempel kan den måtte gjennom kopiering til tmp-tabell, sorteringsresultat, sending av data osv info: Viser denne SQL-setningen, fordi lengden er begrenset, så den lange SQL-setningen vises ikke fullt ut, men den er et viktig grunnlag for å vurdere problemsetningen.
Det viser seg at det er to SQL-spørringssetninger som tar lengst tid og ikke har blitt utført i mer enn 1000 sekunder, og SQL-setningene vi kopierte fra infofeltet er en felles spørring, som følger:
velg cast (count(*) som SIGNERT) som col_0_0_ fra 'RatedPassenger' ratedpasse0_, 'BaseInfoCompany' baseinfoco1_, 'OrderMatch' ordermatch2_ hvor baseinfoco1_. CompanyId=ratedpasse0_. Firmaid og ordermatch2_. OrderId=ratedpasse0_. OrderId Vi avslutter prosessen med disse to spørringssetningene
Etter å ha ventet i 10 sekunder, oppdaget jeg at CPU-en hadde falt mye, men den var fortsatt veldig høy, og jeg vil fortsette å spørre om årsaken!
For join-felles spørringssetningen, legg til en indeks i det tilknyttede feltet eller modifiser programspørringskoden. Opprett en indeks SQL-setning
Slutt
|