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!