Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Spadająca wydajność zapytania., Zapytanie identyczne, ilość danych mniejsza, czas wykonania dłuższy.
Juzek
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.08.2007

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


Witam.

Mam w pętli wywoływanie zapytanie:
  1. SELECT
  2.  
  3. `visits`.`v_id`,
  4. `visits`.`photos_p_id`,
  5. `visits`.`v_ip`,
  6. `photos`.`users_u_id`,
  7. `photos`.`photos_types_pt_id`
  8.  
  9. FROM `visits`
  10. INNER JOIN `photos` ON visits.photos_p_id = photos.p_id
  11. WHERE (visits.v_cookie = 1) AND (visits.v_proxy_headers = 1)
  12. AND (visits.v_image = 1) AND (visits.v_user_id IS NULL) AND (visits.v_value IS NULL)
  13. LIMIT 5000;


Dalej leci skrypt php nadający wartość visits.v_value na inną niż NULL dla każdego wpisu po jego v_id.
Mimo zmniejszającej się ilości wierszy z visits NULL czas zapytania wzrasta.
Tabela zawiera 8640000 wpisów.
Na czas trwania skryptu z powyższym zapytaniem, nie dochodzą do tabeli nowe wpisy.
Wzrost czasu wynosi średnio 0.8 sekundy na każde 5000 wpisów.
W przypadku pierwszej iteracji (8640000 wierszy v_value NULL) skrypt wykonuje się średnio 0.5 sek.

Ktoś ma pomysł dlaczego tak się dzieje i jak przepisać zapytanie by czas jego wykonania nie wzrastał ?

Ten post edytował Juzek 27.10.2014, 15:29:13
Go to the top of the page
+Quote Post
bpskiba
post
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Zobacz coś takiego (pisane z ręki)

  1. SELECT * FROM
  2. (SELECT
  3. `visits`.`v_id`,
  4. `visits`.`photos_p_id`,
  5. `visits`.`v_ip`
  6. FROM `visits`
  7. WHERE (visits.v_cookie = 1) AND (visits.v_proxy_headers = 1)
  8. AND (visits.v_image = 1) AND (visits.v_user_id IS NULL) AND (visits.v_value IS NULL)
  9. )AS wizyty
  10. INNER JOIN `photos` ON wizyty.photos_p_id = photos.p_id


Powodem tej sytuacji jest przepełnienie któregoś bufora silnika mysql. Jeżeli masz dostęp do serwera odpal skrypt
https://raw.githubusercontent.com/major/MyS...r/mysqltuner.pl
Go to the top of the page
+Quote Post

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:45