Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Query sql troppo lunga
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • P
      pgmedia User Attivo • ultima modifica di

      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!? :mmm: :bho:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • Z
        ziobudda Super User • ultima modifica di

        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.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • P
          pgmedia User Attivo • ultima modifica di

          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?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • Z
            ziobudda Super User • ultima modifica di

            Io inizierei a mettere un po' di indici sulle tre tabelle che ne sono sprovvisiti, soprattutto quella da 500K+ record.

            M.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              pgmedia User Attivo • ultima modifica di

              Abbi pazienza, cosa intendi per inserire degli indici?
              Inserire degli id delle altre tabelle per rendere più facile il join?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • Z
                ziobudda Super User • ultima modifica di

                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.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • P
                  pgmedia User Attivo • ultima modifica di

                  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?

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • Z
                    ziobudda Super User • ultima modifica di

                    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.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    Caricamento altri post
                    Rispondi
                    • Topic risposta
                    Effettua l'accesso per rispondere
                    • Da Vecchi a Nuovi
                    • Da Nuovi a Vecchi
                    • Più Voti