- Home
- Categorie
- Coding e Sistemistica
- PHP
- Creazione Graduatoria
-
Ciao talkoman,
hai inserito in tutte le tabelle gli indici?
Di quanti dati stiamo parlando?
-
Si, gli indici sono presenti in ogni tabella....beh, i dati da estrarre sono parecchi....
-
Parecchi quanto? Serve un dato oggettivo...
-
Beh i dati da estrarre, che alla fine sono visibili non sono quasi mai più di 100....ma nella tabella Anagrafica deve cercare tra 60.524 dati, e nella tabella "rel_atl_soc" ci sono 84.436 dati...
-
Nessun suggerimento?
-
I numeri vi hanno fatto paura?
-
Le query non sono molto complesse, e nemmeno il numero di dati mi sembra molto elevato da giustificare questo problema.
Intanto ti dire di fare un explain della query, inoltre se puoi posta la struttura vista con phpmyadmin delle tabelle interessate, perchè l'utilizzo degli indici non mi convince.
-
@Thedarkita said:
...Intanto ti dire di fare un explain della query, inoltre se puoi posta la struttura vista con phpmyadmin delle tabelle interessate, perchè l'utilizzo degli indici non mi convince.
Come si fa?
-
Aggiungi EXPLAIN EXTENDED all'inizio della query e la lanci da phpmyadmin.
-
Ecco il risultato:
Risultato SQL Host: ******* Database: ******* Generato il: 14 apr, 2011 at 01:25 PM Generato da: phpMyAdmin 3.2.0.1 / MySQL 5.0.91-enterprise-gpl-log query SQL: EXPLAIN EXTENDED SELECT codFinAtl,nome,cognome,YEAR(dataNascita) AS annoNascita, MIN(tempoRisultato) AS tempoRisultato, dataManifestazioneIn, sedeManifestazione, graduatorie.crono FROM manifestazionigrad INNER JOIN (anagrafica INNER JOIN graduatorie ON codFin=codFinAtl) ON manifestazionigrad.codice=graduatorie.codMan WHERE anagrafica.eliminato='n' AND graduatorie.eliminato='n' AND codGara='01' AND sesso='M' AND manifestazionigrad.aa='2010/11' AND graduatorie.baseVasca='25' AND (YEAR(dataNascita)='1991' OR YEAR(dataNascita)='1992') GROUP BY codFinAtl ORDER BY tempoRisultato, cognome, nome; Righe: 3 id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE manifestazionigrad ALL NULL NULL NULL NULL 129 Using where; Using temporary; Using filesort 1 SIMPLE graduatorie ALL NULL NULL NULL NULL 56788 Using where 1 SIMPLE anagrafica ALL NULL NULL NULL NULL 60493 Using where