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

    Pagina lentissima!! HELP!! Sql e Php

    Sapreste darmi aiuto riguardo il codice seguente? La pagina che lo contiene viene caricata davvero molto lentamente, anche un minuto. Ecco il codice:

    codice:
        $query = mysql_query("SELECT Data_anno FROM database_stazioni WHERE id_stazione  = '" .$cat. "' AND tipo_dato in (8,2) GROUP BY Data_anno ORDER BY Data_anno DESC ",$conn); 
        if(mysql_num_rows($query) > 0) {
           while($riga_c=mysql_fetch_array($query)) {
            $y = $riga_c['Data_anno'];    
            $query6 = mysql_query("SELECT localita FROM stazioni WHERE id='" .$cat. "'",$conn); 
            $risultato = mysql_fetch_assoc($query6);
    
    
    
    
            $saltariga=0;
            $query3 = mysql_query("SELECT COUNT(id),AVG(temp),AVG(ur),AVG(wind),AVG(pressione),SUM(pioggia)  FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '5' AND Data_anno = '" .$y. "' ",$conn); 
            $risultato3 = mysql_fetch_assoc($query3);
    
    
            $queryOFF = mysql_query("SELECT SUM(pioggia) FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '14' AND Data_anno = '" .$y. "' ",$conn); 
            $risultatoOFF = mysql_fetch_assoc($queryOFF);
    
    
            $query4 = mysql_query("SELECT MIN(temp),MAX(temp) FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '6' AND Data_anno = '" .$y. "' ",$conn); 
            $risultato4 = mysql_fetch_assoc($query4);
    
    
            $query5 = mysql_query("SELECT MAX(temp) FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '7' AND Data_anno = '" .$y. "' ",$conn); 
            $risultato5 = mysql_fetch_assoc($query5);
    
    
            $query19 = mysql_query("SELECT COUNT(ID) FROM (
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 1 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 2 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 3 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 4 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 5 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 6 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 7 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 8 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 9 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 10 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 11 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 12 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
                        )tempdb",$conn); 
            $risultato19 = mysql_fetch_assoc($query19);
        ​    }
        }
    La tabella database_stazioni contiene circa 2 milioni di record.

    Se eseguo dal pannello MySQL le singole query il tutto avviene molto velocemente (pochi deccondi di secondi per ognuna), il problema sta nel trasportare le query su php, i tempi si dilatano a dismisura...

    Spero abbiate buoni consigli!!

    grazie in anticipo a tutti
    Gianfranco

  2. #2
    Quote Originariamente inviata da GianfrancoPa Visualizza il messaggio
    Sapreste darmi aiuto riguardo il codice seguente? La pagina che lo contiene viene caricata davvero molto lentamente, anche un minuto. Ecco il codice:

    codice:
        $query = mysql_query("SELECT Data_anno FROM database_stazioni WHERE id_stazione  = '" .$cat. "' AND tipo_dato in (8,2) GROUP BY Data_anno ORDER BY Data_anno DESC ",$conn); 
        if(mysql_num_rows($query) > 0) {
           while($riga_c=mysql_fetch_array($query)) {
            $y = $riga_c['Data_anno'];    
            $query6 = mysql_query("SELECT localita FROM stazioni WHERE id='" .$cat. "'",$conn); 
            $risultato = mysql_fetch_assoc($query6);
    
    
    
    
            $saltariga=0;
            $query3 = mysql_query("SELECT COUNT(id),AVG(temp),AVG(ur),AVG(wind),AVG(pressione),SUM(pioggia)  FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '5' AND Data_anno = '" .$y. "' ",$conn); 
            $risultato3 = mysql_fetch_assoc($query3);
    
    
            $queryOFF = mysql_query("SELECT SUM(pioggia) FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '14' AND Data_anno = '" .$y. "' ",$conn); 
            $risultatoOFF = mysql_fetch_assoc($queryOFF);
    
    
            $query4 = mysql_query("SELECT MIN(temp),MAX(temp) FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '6' AND Data_anno = '" .$y. "' ",$conn); 
            $risultato4 = mysql_fetch_assoc($query4);
    
    
            $query5 = mysql_query("SELECT MAX(temp) FROM database_stazioni WHERE  id_stazione = '" .$cat. "' AND tipo_dato = '7' AND Data_anno = '" .$y. "' ",$conn); 
            $risultato5 = mysql_fetch_assoc($query5);
    
    
            $query19 = mysql_query("SELECT COUNT(ID) FROM (
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 1 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 2 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 3 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 4 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 5 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 6 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 7 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 8 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 9 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 10 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 11 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
    
    
                        UNION 
    
    
                        SELECT ID FROM database_stazioni WHERE `id_stazione` = '" .$cat. "' AND `Data_anno`= '" .$y. "' AND `Data_mese` = 12 and tipo_dato in (8,2)
                        GROUP BY `Data_giorno`
                        )tempdb",$conn); 
            $risultato19 = mysql_fetch_assoc($query19);
        ​    }
        }
    La tabella database_stazioni contiene circa 2 milioni di record.

    Se eseguo dal pannello MySQL le singole query il tutto avviene molto velocemente (pochi deccondi di secondi per ognuna), il problema sta nel trasportare le query su php, i tempi si dilatano a dismisura...

    Spero abbiate buoni consigli!!

    grazie in anticipo a tutti
    ciao,

    un primo consiglio che posso darti, qualora non l'avessi gia fatto, e' di indicizzare qualche campo maggiormente richiesto.
    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
    Scusa per l'ignoranza, ma che intendi?

    Eseguo la selezione dei dati eseguendo questo ordine:

    tipo_dato -> Data_anno + Data_mese + Data_giorno -> altri dati

    In teoria la prima selezione avviene per tipo_dato. Se lo rendo indice velocizzo tutto? Perdo i dati già inseriti per caso? Aumenta lo spazio occupato nel database?

    Questa è la struttura del database visto dal pannello di aruba:

    Senza nome.jpg
    Gianfranco

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Il regolamento dice di inserire nel titolo il database di cui si sta parlando (e qui NON c'è)
    Il regolamento dice di NON inserire nel titolo parole generiche ed inutili, quali ad esempio HELP o simili (e qui c'è)
    Ce n'è abbastanza per chiudere...

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.