![]() |
![]() |
![]()
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:
Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj widać, że zapytanie nie korzysta z żadnego indeksu. W kolumnie key masz NULL. Bo z czego miałby brać indeks skoro nie ma warunku? @zbysiusp explain musisz dokleić do zapytania z warunkami. A najlepiej zobacz czy masz indeks na `czas_datetime` Bardzo dziękuję za wszystkie rady, ale proszę o wyrozumiałość z racji braku biegłości w php (początkujący). Jak powinno wyglądać przyporządkowanie indeksu do 'czas_datetime' lub innego pola i zapytanie EXPLAIN w moim przypadku. W zapytaniu jest warunek WHERE określający zakres pobieranych rekordów. Tabela w mojej bazie danych jest uzupełniana co 1 minutę o jeden rekord i odczytywana również co jedną minutę. Doczytałem trochę o indeksach. Po pracy spróbuję go przyporządkować do kolumny 'czas_datetime' i przetestować. Tylko nie wiem jak powinno wyglądać zapytanie EXPLAIN z tym indeksem. Ten post edytował zbysiusp 14.03.2017, 09:59:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 02:11 |