- Home
- Categorie
- Coding e Sistemistica
- Coding
- Tempi lunghi per esecuzione query
-
Tempi lunghi per esecuzione query
Salve a tutti, ho un problema con una query che impiega troppo tempo per restituire i risultati.
Vi faccio un breve schema del mio database.Ho una tabella chiamata ?agenzie? dentro la quale ci sono i dati anagrafici delle agenzie;
id (chiave primaria)
denominazione
indirizzo
telefono
ecc?
?.
?.Poiché ognuna di queste agenzie può essere pubblicata su più regioni, ho creato un?altra tabella chiamata ?agenzieRegioni? che è così strutturata:
id (chiave primaria)
idAgenzie (aggancio con tabella agenzie)
regionePoi ho diverse tabelle in cui esistono i dati analitici delle agenzie. Per esempio se l?agenzia è un albergo i suoi dati specifici saranno contenuti nella tabella ?agenzieAlberghi?
id (chiave primaria)
idAgenzie (aggancio tabella agenzie)
categoria
direttore
emailDirettore
ecc?
ecc?
ecc?La logica è questa: per ogni id della tabella agenzie esiste un solo id della tabella agenzieAlberghi. Per ogni id della tabella agenzie esistono infiniti id della tabella agenzieRegioni.
Ora quando vado ad eseguire la seguente query
SELECT agenzie.denominazione, agenziealberghi.categoria
FROMagenziealberghi
INNER JOINagenzieON agenzie.id = agenziealberghi.idAgenzie
INNER JOINagenzieregioniON agenzieregioni.idAgenzie = agenzie.id AND agenzieregioni.nomeRegione = "Sicilia"Mysql impiega 18 secondi per restituire il risultato. Un tempo inaccettabile.
Secondo voi che cosa posso fare per velocizzare il tempo della query?
-
Ho trovato la risposta e la inserisco nel caso in cui qualcuno dovesse avere lo stesso problema.
E' stato semplice: in mysql ho impostato tutti campi che servono a creare le relazioni tra le tabelle come chiavi e la query è stata eseguita in 0.2392 secondi!!!
FANTASTICO.