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.