Mam taki skrypt, który służy do wyświetlania słupków oglądalności mojej strony na każdy z dni (1 dzien to 1 słupek)
  1. //ustalam zakresy czasu dla każdego z dni począwszy od $start
  2.  
  3. $start = '1270495487';//początek
  4. $end = time()+ (24 * 60 * 60);
  5. $inm = 0;
  6. for($k=$start;$k<$end;$k=$k+86400){
  7. $times[$inm] = array(
  8. 'dy' => gmdate( 'j', $k ),
  9. 'mo' => gmdate( 'n', $k ),
  10. 'yr' => gmdate( 'Y', $k ),
  11. 'co' => 0
  12. );
  13. $inm++;
  14. }
  15.  
  16. //pobieram dane z tabeli, dodajac +1 do każdego dnia który mieści się w zakresie wyżej
  17. $query = mysql_query("SELECT start_dy, start_mo, start_yr FROM visits WHERE id > 0") or die(mysql_error());
  18. while($fs = mysql_fetch_row($query)){
  19. for($k=0;$k<$inm;$k++){
  20. if ($times[$k]['dy']==$fs[1] and $times[$k]['mo']==$fs[2] and $times[$k]['yr']==$fs[3]){
  21. $times[$k]['co']++;
  22. }
  23. }
  24. }
  25.  
  26. /rysuje wykres słupkowy
  27. for($k=0;$k<$inm;$k++){
  28. $szero = 2*$times[$k]['co'];
  29. echo '
  30. <div class="graf">
  31. <span class="day"><font size="1"></font></span><span class="pasek" style="width: '.$szero.'px;"><font size="1"></font></span>
  32. </div>';
  33. }


Problem jest taki, ze teraz przy milionie rekordów w tabeli działa już bardzo wolno. Da się to w jakikolwiek sposób zoptymalziować by działało szybciej?