Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Indice non sempre rispettato

    Salve a tutti,
    mi sta succedendo una cosa strana sugli indici che non mi era mai capitata.

    Venendo al dunque ho una tabella di 140.000 record in cui scrivo i punteggi degli utenti.
    Il campo è ovviamente indicizzato.

    Ora, dovendo sapere in che posizione è l'utente faccio una query per vedere quanti ne ha sopra:

    SELECT COUNT(ID_utente) as pos_total FROM $tbl WHERE punteggio > 95

    La cosa strana e assurda è questa, se il punteggio è > di 1000, il mysql usa l'indice, se è minore di 874 no, scansiona obbligatoriamente tutta la tabella.

    Il numero di riferimento varia a seconda, evidentemente, di quanti record ha la tabella.

    La mia domanda è, perchè ad un certo punto ignora l'indice (ho provato anche a forzarglielo, ma niente) e soprattutto, cosa posso fare per farglielo sempre usare????

    Sto diventando matto!

    Grazie mille.
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    scusa eh, ma cosa hai indicizzato? id_utente o punteggio? e un'altra cosa: ma cosa dovrebbe tirarti fuori quella query?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Hai ragione scusa, ho dato per scontato un paio di cose.

    Sono indicizzati tutti e 2, chiaramente l'indice chiamato è PUNTEGGIO che è un campo INT(7).

    Quel risultato mi serve per stabilire la posizione in classifica di un determinato utente, ovvero conto quanti ne hai sopra di te.
    Perchè uso Maxthon? | Mi piace questa chat

  4. #4
    quindi dici che io ho, come punteggio 97

    poi dici: quanti utenti ci sono che hanno punteggio maggiore (ma quelli che ce l'hanno uguale???) a 97

    la mia posizione quindi è pos_total +1 giusto?

    e quindi qual'è il problema? Come mysql fa il conteggio?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.