+ Rispondi alla Discussione
Risultati da 1 a 8 di 8

Query sql troppo lunga

Ultimo Messaggio di ziobudda il:
  1. #1
    User L'avatar di pgmedia
    Data Registrazione
    Feb 2009
    Località
    Lucca, Toscana
    Messaggi
    107

    Query sql troppo lunga

    Ciao a tutti,
    ho realizzando un gestionale su web di dimenzioni abbastanza notevoli.

    Ho iniziato anche il sito internet che andrà a far vedere tutti i dati contenuti in questo bel database sql ma giusto ieri sera mi sono impallato...

    Mi spiego meglio, sono arrivato a fare una query che coinvolge due o tre tabelle stracolme di dati ( circa 500.000 inserimenti una e le altre circa 4-5.000 ) e mi impiega 20 secondi dal conteggio che mi da il pannello phpMyAdmin.

    Sulla pagina web che me la va a contenere questo tempo "aumenta" perchè oltre a quella query ce ne sono anche altre e quindi il tempo di esecuzione di 30 secondi del php e sql non mi basta.

    Ho quindi aumentato con l'apposita istruzione php il massimo tempo di esecuzione a 900.. in effetti se aspetto il tutto viene caricato.. ma devo aspettare più di un minuto!!
    E qualsiasi utente dopo 10 secondi scappa via!!

    Esiste una qualche maniera per velocizzare il tutto!?

  2. #2
    User Attivo
    Data Registrazione
    Mar 2009
    Località
    Milano
    Messaggi
    2,175
    Segui ziobudda su Twitter Aggiungi ziobudda su Google+
    Dovresti analizzare la tabella e capire dove è il collo di bottiglia.

    prova ad anterporre "explain" alla query SQL e vedi cosa ti restituisce.
    Magari ti basta inserire solamente alcuni indici.

    M.
    Sviluppo creazione siti portali Drupal - - Assistenza Drupal - Corsi Drupal

  3. #3
    User L'avatar di pgmedia
    Data Registrazione
    Feb 2009
    Località
    Lucca, Toscana
    Messaggi
    107
    Grazie per la risposta!
    Comunque è la prima volta che uso questo comando sql e mi è stato restituita questa tabella :
    pgmedia . it /explain.jpg

    che mi consiglieresti di fare?

  4. #4
    User Attivo
    Data Registrazione
    Mar 2009
    Località
    Milano
    Messaggi
    2,175
    Segui ziobudda su Twitter Aggiungi ziobudda su Google+
    Io inizierei a mettere un po' di indici sulle tre tabelle che ne sono sprovvisiti, soprattutto quella da 500K+ record.

    M.
    Sviluppo creazione siti portali Drupal - - Assistenza Drupal - Corsi Drupal

  5. #5
    User L'avatar di pgmedia
    Data Registrazione
    Feb 2009
    Località
    Lucca, Toscana
    Messaggi
    107
    Abbi pazienza, cosa intendi per inserire degli indici?
    Inserire degli id delle altre tabelle per rendere più facile il join?

  6. #6
    User Attivo
    Data Registrazione
    Mar 2009
    Località
    Milano
    Messaggi
    2,175
    Segui ziobudda su Twitter Aggiungi ziobudda su Google+
    No, inserire degli indici di mysql.

    Leggi le istruzioni SQL di mysql relative ad

    ADD INDEX (
    12.1.8. CREATE INDEX Syntax)

    Con phpMyAdmin ci metti un attimo.

    M.
    Sviluppo creazione siti portali Drupal - - Assistenza Drupal - Corsi Drupal

  7. #7
    User L'avatar di pgmedia
    Data Registrazione
    Feb 2009
    Località
    Lucca, Toscana
    Messaggi
    107
    UUU!!! Roba da matti... tempo impiegato : 0.3054 sec invece di 20 e passa!

    Grazie infinite

    Editato:
    curiosità, è meglio un indice che coincolve il maggior numero di colonne possibile o il meno possibile?
    Ultima modifica di pgmedia; 03-02-10 alle 14:06

  8. #8
    User Attivo
    Data Registrazione
    Mar 2009
    Località
    Milano
    Messaggi
    2,175
    Segui ziobudda su Twitter Aggiungi ziobudda su Google+
    Solo per il numero esatto di colonne interessate dalla ricerca.

    Se cerchi per campo1 e campo2 insieme, allora crei un indice che contenga entrambi i campi.

    Non ti serve creare degli indici per colonne su cui non effettui una ricerca.

    M.
    Sviluppo creazione siti portali Drupal - - Assistenza Drupal - Corsi Drupal

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.