Ciao Lanciafiamme,
intanto grazie
Sto usando myisam.
La cosa che mi sorprende, banalizzando all'estremo la query, è questa.
Presupponendo di avere appunto una tabella punteggi con 300.000 righe e la colonna punteggi indicizzata, quando vado a fare una query del tipo:
SELECT COUNT(punti) FROM tbl_punti WHERE punteggio > 5;
Mysql ignora completamente l'indice poichè, immagino, essendo il punteggio molto in basso ai risultati e dovendo gioco forza scansionare l'intera tabella per farmi sapere quante righe ci sono, ritiene inutile usare appunto l'indice.
Difatti la cosa cambia quando il punteggio cresce e diventa, che ne so, > 400
in quel caso usa l'indice e le righe scansionate diventano poche migliaia.
A questo punto però mi ritrovo con 250.000 righe scansionate nei casi di minor punteggio (ovvero il 90% dei casi) senza poterlo in qualche modo filtrare adeguatamente.
Possibile che non ci sia un metodo per ottimizzare?
Credo a tal proposito di non aver capito in modo pratico il tuo trucchetto.
Grazie!![]()


Rispondi quotando