Risposte:
interactive_timeè per sessioni interattive, mentre wait_timeoutè per sessioni non interattive.
Che cos'è una sessione interattiva? È uno con un essere umano alla tastiera.
Quando il codice si connette a MySQL, esegue una query e quindi impiega 3 secondi a elaborarla prima di disconnettersi, ovvero 3 secondi dal wait_timeout.
Quando si utilizza il mysqlclient della riga di comando per connettersi, eseguire un comando e passare 10 secondi a leggere l'output, ovvero 10 secondi di interactive_timeout. Se vai via e pranzi, sono 3600 secondi interactive_timeout.
In entrambi i casi, quando tu o il tuo codice eseguite un'altra query, il tempo di attesa viene riportato a 0.
È possibile visualizzare i valori per tutte le sessioni correnti digitando show processlist. I valori nella sleep(5)funzione sono il numero di secondi dall'ultima volta che la connessione ha fatto qualcosa.