Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja skryptu PHP
zbysiusp
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 11.07.2009

Ostrzeżenie: (0%)
-----


Witam!

Na potrzeby wykresu Highcharts napisałem skrypt PHP, który pobiera dane z bazy MySQL i koduje je do formatu JSON (3 serie danych). Skrypt działa poprawnie, ale czas jego wykonania i pobrania wyniku do przeglądarki jest bardzo długi ok. 10 sekund co stwarza problemy przy wywoływaniu go co 1 minutę wraz z innymi skryptami - zawieszenie przeglądarki po ok. 1 godzinie. W przykładzie poniżej ograniczyłem wynik do 5 minut, ale w rzeczywistości pobierane są dane z miesiąca (43 tys. rekordów). Proszę o radę w jaki sposób zoptymalizować ten skrypt?

Oczekiwany format kodowania:
Wynik działania skrypu

Kod:
  1. $sth = mysql_query("SELECT czas_unix, wind_speed_average, windgust, wind_direction_average FROM tab_czujniki_2 WHERE czas_datetime >= '$minus_data' ORDER BY czas_datetime ASC") or die('Błąd zapytania');
  2.  
  3. $rows = array();
  4. $rows['name'] = 'wind_speed_average';
  5. $rows1 = array();
  6. $rows1['name'] = 'windgust';
  7. $rows2 = array();
  8. $rows2['name'] = 'wind_direction_average';
  9.  
  10. while($r = mysql_fetch_array($sth)){
  11. $rows['data'][] = array(1000*($r['czas_unix']),$r['wind_speed_average']);
  12. $rows1['data'][] = array(1000*($r['czas_unix']), $r['windgust']);
  13. $rows2['data'][] = array(1000*($r['czas_unix']), $r['wind_direction_average']);
  14. }
  15.  
  16. $result = array();
  17. array_push($result,$rows);
  18. array_push($result,$rows1);
  19. array_push($result,$rows2);
  20. print json_encode($result, JSON_NUMERIC_CHECK)


Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie
- zbysiusp   Optymalizacja skryptu PHP   13.03.2017, 14:20:19
- - daro0   Masz założony indeks na pole czas_datetime?   13.03.2017, 17:20:56
- - zbysiusp   Cytat(daro0 @ 13.03.2017, 17:20:56 ) ...   13.03.2017, 17:23:58
- - qbson69   Problemem chyba nie jest zapytanie, ale duża ilość...   13.03.2017, 17:41:22
- - zbysiusp   Cytat(qbson69 @ 13.03.2017, 17:41:22 ...   13.03.2017, 17:55:09
- - viking   Sprawdź w jakimś narzędziu typu heidisql ile samo ...   13.03.2017, 18:54:49
- - zbysiusp   Cytat(viking @ 13.03.2017, 18:54:49 )...   13.03.2017, 19:56:57
- - phpion   Też obstawiałbym, że problemem jest ilość zwracany...   13.03.2017, 22:57:46
- - zbysiusp   Cytat(phpion @ 13.03.2017, 22:57:46 )...   13.03.2017, 23:21:09
- - phpion   1. Explain select czas_unix... i wklej tutaj wynik...   14.03.2017, 07:11:02
- - zbysiusp   Cytat(phpion @ 14.03.2017, 07:11:02 )...   14.03.2017, 07:51:16
- - daro0   Jaki to jest problem napisać sobie prostą klasę pr...   14.03.2017, 07:57:23
- - phpion   Tutaj widać, że zapytanie nie korzysta z żadnego i...   14.03.2017, 08:28:25
- - Pyton_000   Bo z czego miałby brać indeks skoro nie ma warunku...   14.03.2017, 08:53:35
- - zbysiusp   Cytat(phpion @ 14.03.2017, 08:28:25 )...   14.03.2017, 09:32:48
- - Lion   Jeśli masz już indeks na kolumnie z czasem, a zapy...   14.03.2017, 09:37:00
- - zbysiusp   Założyłem indeks na kolumnie 'czas_datetime...   14.03.2017, 19:57:25
- - daro0   A zdajesz sobie sprawę z tego co w takim przypadku...   15.03.2017, 11:40:52
- - zbysiusp   Witam. Bardzo dziękuję Wszystkim za rady, sugesti...   17.03.2017, 15:44:19
- - viking   Robisz tutaj 3 klucze stałe więc możesz od razu do...   17.03.2017, 16:31:37
- - zbysiusp   @viking Dziękuję bardzo. Działa dobrze. Pozdrawia...   17.03.2017, 18:04:34


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:14