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

    [mysql] Informazione order by

    Salve a tutti,
    avrei una domanda sull'ordinamento che un database mysql fa quando facciamo una select con order by.
    Se io ho ad esempio una tabella con il nome degli utenti e i punti e volessi fare una classifica, supponendo di avere un campo chiamato utenti e uno chiamato punti in una tabella chiamata classifica farei una select di questo genere:

    codice:
    select utenti from classifica order by punti desc
    la domanda è questa: se il campo punti non ha un indice, la select, quando i record saranno molti, impiegherebbe più tempo? oppure è uguale ad un campo punti con indice?
    Grazie mille per le eventuali risposte.

  2. #2

  3. #3
    ah perfetto. Grazie mille.

  4. #4
    Un'altra cosa... questa tabella a cui adesso dovrò inserire l'indice presenta già dei record... posso inserircelo normalmente o questo potrebbe causare qualche problema?

  5. #5
    si potrebbe creare un indice ordinato DESC ma sfortunatamente mysql dice:

    An index_col_name specification can end with ASC or DESC. These keywords are permitted for future extensions for specifying ascending or descending index value storage. Currently, they are parsed but ignored; index values are always stored in ascending order.
    Sarebbe da provare per bene, ma credo che l'ordinamento DESC sia sottoposto al velocissimo SORT e di fatto non sia letto l'indice a ritroso. Direi che e' indifferente la presenza o meno di un indice utilizzata solo dall'ORDER BY DESC. Serve sicuramente di piu' (per il select) un indice sul campo utenti ma quando i record saranno di piu' lo stesso indice appesantira' l'insert, update e delete visto che ad ogni variazione del campo dovra' rifare l'indice stesso.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Si hai ragione... d'altro canto però una select sul campo utente risulterebbe molto più pesante se fatta senza un indice in tale campo... di fatto preferisco inserirlo e come dici tu, non farlo invece nel campo punti.
    Grazie mille a tutti per il supporto!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.