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

    [MYSQL] studiare query efficienti

    Salve a tutti... mi sono studiato un po di manuali su DB relazionali e come si deve fare un DB.
    Bene ho realizzato un qualcosa tipo questo (semplifico un pochino)

    TABELLA UTENTI
    ID|id_stato|id_classe|cognome|nome|user|psw

    TABELLA INDIRIZZI
    ID|id_utente|id_tipo|id_citta|cap|indirizzo|locali ta|PREF

    TABELLA RECAPITI
    ID|id_utente|id_tipo|recapito

    Ho caricato 10000 utenti con 2 indirizzi a testa e 2 recapiti (mail e telefono)
    La tabella indirizzi è semplificata, ma diciamo che se la città è italiana ed ha un cap solo l'id_citta da tutte le informazioni necessarie se è multi cap il campo cap definisce meglio il cap e se non è italiana ci sono altri campi che per semplicità ora non ho messo. Così non mi trovo subito chi mi fa caziatone per la tabella

    Devo visualizzare in una pagina tutti gli utenti paginati a 100.
    Come prima prova mi son detto tiro fuori i 100 utenti e poi ciclandoli estraggo con query i dati aggiuntivi che mi servono, così non faccio JOIN assurde. Risultato: +30secondi di risposta.

    Allora ho provato a creare una JOIN tra Utenti e Indirizzi e diciamo che su DB non ci mette moltissimo, ma come faccio ad aggiungerci anche i 2 recapiti?

    Voi come risolvereste il problema?
    Io tutte le volete che provo a dividere i dati in tabelle come dicono i manuali mi trovo con query che ciclano molto... l'ultima che ho fatto girare mi ha spento il pc!!!!!!
    Ovvi che se metto tutti i dati su una tabella risolvo in un nanosecondo, ma dato che si dovrebbe avere un DB così strutturato poi come li tiro fuori i dati senza uccidere la macchina?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  2. #2
    Ciao,

    uno dei metodi piu' usati e consigliati per rendere piu' veloci le interrogazioni e quello di creare degli indici sui campi che verranno coinvolti nella selezione.

    Nel tuo caso puoi creare degli indici su id_utente in indirizzi e utente.
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Grazie ho trovato una guida ed ho inserito degli indici... devo ammettere che è talmente nuova la cosa degli indici per me che una guida più completa ci vorrebbe... cmq ora la pagina ha una velocità accettabile
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  4. #4
    Quote Originariamente inviata da rinosan_76bis Visualizza il messaggio
    cmq ora la pagina ha una velocità accettabile
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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.