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

    indici numerici ripetuti mysql...

    Ciao raga,

    Vengo subito al dunque:
    Ho una tabella Mysql chiamata "siti_utenti".
    codice:
    |id|url_sito|descrizione|rif_id_utente|
    |0|www...|bla bla bla..|202            |
    |1|www...|bla bla bla..|105            |
    |2|www...|bla bla bla..|202            |
    |3|www...|bla bla bla..|202            |
    |4|www...|bla bla bla..|205            |
    ...........e così via..........................

    Lo schema sopra indicato usa il metodo di memorizzazione standard con la chiave primaria "id",etc.

    Problema: Potete notare che la sopra indicata tabella ha un colonna chiamata "rif_id_utente" che serve ad identificare i proprietario dei siti, chiaramente con il metodo di memorizzazione standard quest'ultimi vengono memorizzati in modo non indicizzato; Finchè gli "id" sono pochi non ci sono problemi in lettura, ma quando iniziano ad essere molti tipo "100.000" il tutto inizia a rallentare, quindi la soluzione ideale "secondo il mio punto di vista" è quello di indicizzare il campo "rif_id_utente";

    Domande:
    -Quale tipo di indice devo utilizzare per colonne con campi numerici e ripetuti più di una volta?
    -Secondo voi si risolverebbè il problema in lettura con il metodo che voglio adottare io?

    In pratica voglio questo:
    codice:
    |id|url_sito|descrizione|rif_id_utente|
    |0|www...|bla bla bla..|105         |
    |1|www...|bla bla bla..|202         |
    |2|www...|bla bla bla..|202         |
    |3|www...|bla bla bla..|202         |
    |4|www...|bla bla bla..|205         |
    Fatemi sapere
    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Cosa intendi per "tipo di indice"? Ovviamente non potrà essere né unique né chiave primaria, per cui...

    CREATE INDEX rif_id_utente
    ON siti_utenti (rif_id_utente)

  3. #3
    esiste nella select l'istruzione ORDER BY che serve proprio per dare un determinato ordine ai campi. Se utilizzi molto l'ordinamento per rif_id_utente ti converra' fare un indice su questo campo, ma se pero' hai molti inserimenti di record, l'indice rallentera' ogni inserimento visto che dovra' essere ricompilato ogni volta.

    Devi valutare tu quello che ti serve. Escluderei pero' in modo assoluto l'associazione "ordinata" degli id con rif_id_utente.... sono due cose diverse. Per fare questo dovresti riscrivere la tabella intera e non avrebbe pero' alcuna logica il farlo.

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

  4. #4
    CREATE INDEX rif_id_utente
    ON siti_utenti (rif_id_utente)

    Grazie mille per la risposta, ma così facendo campi vengono indicizzati automaticamente anche quelli che precedentemente non erano indicizzati?

    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  5. #5
    esiste nella select l'istruzione ORDER BY che serve proprio per dare un determinato ordine ai campi. Se utilizzi molto l'ordinamento per rif_id_utente ti converra' fare un indice su questo campo, ma se pero' hai molti inserimenti di record, l'indice rallentera' ogni inserimento visto che dovra' essere ricompilato ogni volta.
    Non esiste una via di mezzo logica e corretta tra la lettura e la scrittura?
    Tu cosa faresti?
    Grazie
    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  6. #6
    Originariamente inviato da albertozzo
    Non esiste una via di mezzo logica e corretta tra la lettura e la scrittura?
    Tu cosa faresti?
    Grazie
    Un indice c'e' oppure non c'e'.

    Se c'e' non e' detto che venga usato nella select... dipende da cosa scrivi nel WHERE. Di sicuro sara' sempre aggiornato ad ogni variazione dei dati.

    Vedi tu quello che ti serve. Fai delle prove.

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

  7. #7
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087

    Re: indici numerici ripetuti mysql...

    Originariamente inviato da albertozzo
    Ciao raga,

    Vengo subito al dunque:
    Ho una tabella Mysql chiamata "siti_utenti".
    codice:
    |id|url_sito|descrizione|rif_id_utente|
    |0|www...|bla bla bla..|202            |
    |1|www...|bla bla bla..|105            |
    |2|www...|bla bla bla..|202            |
    |3|www...|bla bla bla..|202            |
    |4|www...|bla bla bla..|205            |
    ...........e così via..........................
    ecc.......[/code]
    Forse ho capito qual è il tuo problema.
    Devi creare
    - una tabella degli autori (tab_aut) dei siti . Questa tab ha due colonne id e nome_aut + altre eventuali inf.
    - Seconda tabella siti con tre colonne id_sito nome_sito id_aut

    quando vuoi conoscere tutti i siti di un autore
    - estrai id e nome dalla prima tabella
    - estrai nome_sito where id_aut = tab_aut.id

    spero che cercavi questo.
    ciao

  8. #8
    Forse ho capito qual è il tuo problema.
    Devi creare
    - una tabella degli autori (tab_aut) dei siti . Questa tab ha due colonne id e nome_aut + altre eventuali inf.
    - Seconda tabella siti con tre colonne id_sito nome_sito id_aut

    quando vuoi conoscere tutti i siti di un autore
    - estrai id e nome dalla prima tabella
    - estrai nome_sito where id_aut = tab_aut.id

    spero che cercavi questo.
    ciao
    E' proprio quello che faccio !!

    Solo vorrei che quando il WHERE va a cercare l'id corrispondente nella seconda tabella trovasse i siti degl'autori in meno tempo possibile.

    ed ho pensato di mettere in ordine la colonna "rif_id_utente", creando un indice su quest'ultima....

    Però da quello che sto capendo mi trovo nella condizione simile a chi ha una coperta corta...tiri da un lato e scopri dall'altro...

    Grazie
    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

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.