• User

    Come ottimizzare il mio sito PHP? Troppe query...

    Ciao ragazzi oggi chiedo un piccolo aiuto perché ho sempre programmato in maniera "impulsiva" ed ho poco pensato a studiare metodi avanzati di caching etc...

    Il mio sito è un vero e proprio CRM, ovvero un sistema dove degli "clienti" aprono dei ticket che poi i vari operatori gestiscono...

    La pagina più pesante è quella principale, la visualizza_ticket.php che mostra agli operatori tutti i ticket aperti, in lavorazione, da assegnare etc... Anche se ne sono un centinaio sono "pesanti" perchè:

    1. La tabella ticket ha per ogni campo degli id esterni... per spiegarmi meglio vi mostro la tabella ridotta:
      id - id_ticket - id_padre - id_chi_ha_aperto - id_operatore - id_categoria etc...

    Quindi immaginate che per mostrare la pagina del riepilogo dei ticket ci sta innanzitutto la query per pescare quei 100 ticket (sto dicendo 100, ma è tutto molto dinamico, i ticket si aprono e si chiudono molto dinamicamente)... Poi per ogni result si deve fare 1 query per ogni campo per andare a prendere i rispettivi valori nelle altre tabelle...

    Io è proprio questa cosa che vorrei "ottimizzare" perchè rallenta di un bel pò il caricamento della pagina...

    Come strutturereste voi la cosa? Grazie mille per i consigli...


  • ModSenior

    Ciao iGianni84,
    perchè non fai dei join invece di una fare query per ogni ticket?


  • User

    Cavolo, ecco che mi si apre un mondo 🙂 La Join fino a quante tabelle garantisce buone prestazioni? Posso fare un unica query con una JOIN che unisce 4/5 tabelle?


  • ModSenior

    Sono sicuramente più veloci del metodo che utilizzavi prima, per la velocità dipende se utilizzi gli indici correttamente e dal numero di record presenti nella tabella.


  • ModSenior

    Dopo dipende anche come costruisci i vari JOIN, l'ordine dei JOIN favorisce anche la velocitò dell'esecuzione delle query.