Visualizzazione dei risultati da 1 a 3 su 3

Discussione: ottimizzazione query

  1. #1
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765

    ottimizzazione query

    Buonasera a tutti,

    stavo pensando a come ottimizzare le query del mio sito (circa 35/pagina).

    Partendo la presupposto che le query, dove possibile sono gìà state ottimizzate, e che utilizzo una classe diversa per ogni sezione del sito (galleria, area download, profili utenti, news, ecc.), pensavo di eseguire una query (vedi esempio) nella funzione costruttrice della classe della sezione che l'utente sta visitando in modo da caricare tutti i dati che mi servono direttamente li (solo delle tabelle utilizzate nella suddetta classe) e poi, ovvimente solo per quanto riguarda le query di tipo SELECT, agire sull'array appena creato con le classiche funzioni per gestire gli array (per quanto riguarda questo punto ho già creato una classe ad hoc ).
    esempio:
    Codice PHP:
    <?php

    $i 
    = new tomsgate;
    class 
    tomsgate {

        var 
    $foto = array();

        function 
    tomsgate() {

            
    $tab_galleria $DB->query("SELECT * FROM tomsgate");
            while(
    $row mysql_fetch_array($tab_galleria)){
                
    $foto[] = $row;
            }
            
    $this->tomsgate serialize($foto);

            switch(
    $_GET['do']){
                case 
    'view_foto':
                    
    $this->view_foto();
                break;
    .....
    facendo un po' di prove mi risulta questo risultato

    SECONDI: tempo impiegato dallo script
    DIMENSIONE ARRAY: numero di righe estrapolate dalla query mysql
    MYSQL: risultato ottenuto con mysql
    ARRAY: risultato ottenuto con il metodo in esame

    scusate per la poca chiarezza ma vista l'ora...
    se avete bisogno di altre informazioni per le vostre considerazioni chiedete pure...

    cosa ne pensate di tutto ciò? ne vale la pena secondo voi?
    una delle mie paure è che quando ci sono tabelle consistenti (vedi foto -> quasi 6000 righe) tutto ciò faccia rallentare il server..

    attendo consigli..

  2. #2
    Certo che rallenta il server. Non vedi che i tempi di esecuzione nel caso dell'array aumentano spaventosamente?

    Sul server in cui l'hai testato, il MySQL ci mette in media circa 7 volte meno rispetto all'Array, praticamente per ogni volta che viene visualizzata una pagina è come se fossero connessi 7 utenti insieme.

    Voi non avete nemmeno idea di quanto veloce sia il MySQL ed il metodo di ottimizzazione delle query, è fatto per gestire milioni di query l'ora, altro che array...

    Fra l'altro, molti provider usano far gestire il MySQL a un server diverso da quello in cui risiede il sito... per cui non credo convenga affatto quelli che dici tu.

    Ma poi, perché ti preoccupano tanto 35 query per pagina?
    Se ti faccio vedere quante query ci sono per pagina in un e-commerce che ho creato ti vengono i capelli bianchi
    Non c'è niente di più immenso del nulla.
    Dunque parlatemi del nulla se non volete mai annoiarmi.


    Nozioni: PHP, ASP, HTML, XHTML, DHTML, XML, Javascript, Actionscript, Ajax, CSS, MySQL, Photoshop, Flash, Dreamweaver, 3D Studio Max, FL Studio, Illustrator, Corel Draw, insomma.... chiedete e basta.

  3. #3
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    ihihih avevo immaginato.. la convenienza era semmai nelle pagine dove c'erano pochi dati da estrapolare da mysql, e quindi i tempi erano molto più ridotti...

    grazie per la risposta e per le informazioni

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.