2015-07-05 13 views
6

Su MYSQL Workbench, sto eseguendo questa query: count(*) from test.nameTable Ho due milioni di righe in questa tabella. dopo un po 'ottengo questo errore: Lost connection to MySQL server during query
Ho visto questa domanda e le sue risposte in altri punti ma nessuna delle risposte ha aiutato.
Ho provato a impostare tutte le variabili globali di timeout e dimensione del pacchetto sul valore massimo e a suddividere la query in qualche modo .. Ma nessuno di questi metodi ha funzionato.Connessione persa al server MySQL durante la query

SET GLOBAL connect_timeout=10000000 
SET GLOBAL net_read_timeout=10000000 
SET GLOBAL max_allowed_packet=1073741824 

Qualcuno sa quale potrebbe essere il problema e come risolverlo per favore?

+0

Eseguire il conteggio su una colonna indicizzata – Mihai

+0

La colonna indicizzata è diversa da qualsiasi altra colonna? Ho provato su una chiave primaria e non ha funzionato –

+0

Quale tipo di archiviazione è la tabella (MyISAM, InnoDB, ecc.)? Mi sembra di ricordare che può fare davvero la differenza per COUNT ... –

risposta

-1

Se nessuna riga sono stati mai eliminata dalla tabella, chiave primaria ° descriverebbe il conteggio totale di righe, nel qual caso probabilmente si potrebbe provare

SELECT MAX(pk) FROM test.nameTable 

Non sono sicuro che sarebbe stato più veloce, ma forse vale la pena provare?

1

Se si esegue da MySQL Workbench (come posso leggere sul tuo commento, si prega di aggiornare la domanda), il programma ha i propri timeout.

Se si va al menu del programma, le preferenze -> SQL Editor, ci sono queste opzioni:

MySQL Sessione: connessione DBMS intervallo keep-alive (in secondi): connessione DBMS leggere time out (in secondi): Timeout connessione DBMS (in secondi):

Se si leggono le descrizioni da queste opzioni, è possibile vedere sul secondo che è il momento in cui il workbench attende una risposta dal server.

Problemi correlati