Ciao ragazzi, come posso risolvere questo problema? Si verifica quando mando in esecuzione una query che fa il join di tabelle con tantissimi records.
Grazie.
Ciao ragazzi, come posso risolvere questo problema? Si verifica quando mando in esecuzione una query che fa il join di tabelle con tantissimi records.
Grazie.
Da riga di comando anteponi alla query la parola explain e poi posta sia la query che l'output prodotto da explain.
explain select a.utente, a.durata, a.inizio, b.contatto
from tabella1 a, tabella2 b
where a.utente=b.utente and a.durata=b.durata
id select_type table possible_keys key key_len ref rows extra
1 SIMPLE ALL a (null) (null) (null) (null) 116501
1 SIMPLE ref b persontimes persontimes 4 rm.a.utente 8979 using where
Posta un dump (create e insert) delle due tabelle con qualche record fittizio e il risultato atteso.
a "naso" è il type ALL anzichè ref.
Manca un indice (o più) su tabella1
Posso aiutarmi col parametro wait_timeout?
Ora, invece, ho un errore di 'out of memory'!
Conviene che crei uno o più indici.Originariamente inviato da lilux
Posso aiutarmi col parametro wait_timeout?
Ora, invece, ho un errore di 'out of memory'!
Riguardo il out of memory...è dovuto all'uso di tabelle temporanee per poter eeguire la query. Crea un indice su "utente" in ambo le tabelle, probabile risolvi in un colpo solo tutti e due i problemi