nota: abbastanza lungo ma sono nei guai
nota2: penso sia la sezione giusta per un problema con mysql
ho un problema piuttosto rognoso con mysql che mi sta facendo diventare matto...
ho 2 tabelle (t_interventi -IN- e t_schedainterventi -SIN-)... nella tabella t_interventi ho un campo IN_schedainterventi che richiama il campo SIN_codice della tabella t_schedainterventi
codice:
SIN_id | |IN_id
SIN_codice| <-- |IN_schedainterventi
una cosa del genere....
dopo essermi scritto una query abbastanza complessa per avere delle statistiche (sorvolo, ininfluente alla domanda
), ho visto che era lentissima nell'esecuzione (14+ secondi)..e provando la stessa query anche da Mysql query browser ho lo stesso problema di lentezza....
per fare un test ho poi semplificato la query riducendola all'osso e cioè
Codice PHP:
SELECT t_schedainterventi.SIN_Id, t_interventi.IN_Id, t_schedainterventi.SIN_codice,
t_interventi.IN_SchedaIntervento FROM t_interventi
RIGHT JOIN t_schedainterventi
ON t_interventi.IN_SchedaIntervento = t_schedainterventi.SIN_codice;
questa query mi da come risultato esatto (i 17k record nella tabella T_interventi) ma impiega 180+ secondi per eseguire...se importo le tabelle in access ed eseguo una query in access con gli stessi dati (1600 record per t_schedainterventi e 17k per t_interventi che aumentano di almeno 8k record al mese) impiego meno di 2 secondi ad avere la risposta....dopo aver perso mezza serata per capire il problema ho provato (proprio una prova) a cambiare l'engine del db da myisam che aruba mi obbligava ad usare e ho mantenuto a innodb, default di mysql e l'esecuqione della query è passata a circa 50 secondi (cmq esageratamente troppo)...
per controprova ho importato tutto il db su mssql e usando la stessa query ho la risposta in 0.5 secondi (compresa renderizzazione pagina asp che uso mentre 180 secondi da query browser)...
cosa sbaglio nella configurazione del database (indici o engine magari)? cosa sbaglio nella query?
il server locale l'ho installato io, ma ho provato sul server web (preconfigurato in cui ho importato il db) e ho lo stesso risulatato (tempo > 180 sec con myisam)...
help
grazie per la lettura se siete arrivati fino a qua
bio