Apri il task manager server e scopro che il processo CPU è sempre stato al 99%, e la visuale è occupata dal processo mysql, che era sempre alto.
L'output del comando della lista dei processi mostra quali thread sono in esecuzione e puoi controllare lo stato attuale del database.
1. Vai nella directory mysql/bin e inserisci la lista processi mysqladmin; 2. Avvia mysql e inserisci la lista dei processi. Se hai il permesso SUPER, puoi vedere tutti i thread, altrimenti puoi vedere solo i thread del tuo account.
Il significato e lo scopo di ogni colonna
id: Un identificatore user: visualizza l'utente corrente, se non è root, questo comando mostrerà solo le istruzioni SQL all'interno dei tuoi permessi. host: mostra da quale IP proviene questa dichiarazione da quale porta db: Visualizza il database a cui il processo è attualmente collegato. comando: Visualizza i comandi eseguiti dalla connessione corrente, solitamente sospeso, interrogazione e connettenza. tempo: Il tempo che dura questo stato, in secondi. stato: Visualizza lo stato dell'istruzione SQL che utilizza la connessione corrente, ma solo un certo stato nell'esecuzione dell'istruzione, un comando sql, è stato interrogato; ad esempio, potrebbe dover passare attraverso la copia alla tabella tmp, l'ordinamento dei risultati, l'invio dei dati, ecc info: Mostra questa istruzione SQL, perché la lunghezza è limitata, quindi la lunga istruzione SQL non è completamente visualizzata, ma è una base importante per giudicare la dichiarazione del problema.
Si scopre che ci sono due istruzioni query SQL che richiedono il tempo più lungo e non sono state eseguite per più di 1000 secondi, e le istruzioni SQL che abbiamo copiato dal campo info sono una query congiunta, come segue:
seleziona cast(count(*) come FIRMATO) come col_0_0_ da 'RatedPassenger' ratedpasse0_, 'BaseInfoCompany' baseinfoco1_, 'OrderMatch' ordermatch2_ dove baseinfoco1_. CompanyId=ratedpasse0_. Compagnia e ordermatch2_. OrderId=ratedpasse0_. OrderId Blocchiamo il processo di queste due query statement
Dopo aver aspettato 10 secondi, ho scoperto che la CPU era calata molto, ma era comunque molto alta, e continuerò a interrogarmi sul motivo!
Per la dichiarazione joint inquiry, aggiungi un indice al campo associato o modifica il codice della query del programma. Crea un'istruzione SQL indicizzata
Fine
|