Mam w pętli wywoływanie zapytanie:
SELECT `visits`.`v_id`, `visits`.`photos_p_id`, `visits`.`v_ip`, `photos`.`users_u_id`, `photos`.`photos_types_pt_id` FROM `visits` INNER JOIN `photos` ON visits.photos_p_id = photos.p_id WHERE (visits.v_cookie = 1) AND (visits.v_proxy_headers = 1) AND (visits.v_image = 1) AND (visits.v_user_id IS NULL) AND (visits.v_value IS NULL) 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ł ?