Salve a tutti,
potrei avere un problema di performance circa la query di posizionamento per il mio gioco.

Spiego subito.

Ho la tabella PUNTI, con 280.000 record, così fatta:

ID | IDUTENTE | PUNTI
(Indici su tutti e 3 i campi.)

Ora, per determinare la posizione di un utente in classifica che ha diciamo 43 punti, faccio cosi:

codice:
SELECT punti FROM tbl_punti WHERE status = 'a' AND punteggio > 43;
Ovvero mi trovo quanti record ci sono fino al mio.

Ora, tutto bello, funziona bene, il problema è che facendo analisi mi rendo conto che, ovviamente, un sistema di questo tipo scansiona tutta la tabella, per forza, con questi risultati:

codice:
# Query_time: 94  Lock_time: 0  Rows_sent: 120910  Rows_examined: 405849
Devo dire che il tempo di ritorno è solitamente veloce (a parte in momenti di carico, come mostra la riga qui sopra) ma esaminare 405.849 righe e mandarne 120.910 per n utenti credo sia comunque troppo, no?

Volevo chiedere se qualcuno ci è già passato e sa suggerirmi un metodo più performante.

Che mi consigliate????

Grazie!