Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bardzo duże wartości Handler_read_rnd_next
Forum PHP.pl > Forum > Bazy danych > MySQL
TomASS
Witam.

Zauważyłem, że w bazie danych mam bardzo duże wartości dwóch parametrów:
Handler_read_rnd (300k)
Cytat
Liczba żądań odczytu następnego rekordu na podstawie stałego położenia. Wartość jest duża przy wykonywaniu dużej ilości zapytań wymagających sortowania rezultatu. Prawdopodobnie wykonano wiele zapytań wymagających przeszukania całej tabeli lub złączeń, które nie używają poprawnie indeksów.


oraz

Handler_read_rnd_next (>100M)
Cytat
Liczba żądań odczytu następnego rekord w pliku z danymi. Wartość jest duża przy wykonywania wielu przeszukiwań tabeli. Ogólnie sugeruje to, że tabele nie są poprawnie zindeksowane lub że zapytania nie są napisane w sposób pozwalający skorzystać z istniejących indeksów.


przy ilości zapytań ok 1,5mln (od startu serwera), oraz 1 slow queries.



Szukałem na formu/googlu ale nie znalazłem satysfakcjonującej mnie odpowiedzi. Większość zapytań (wszystkie jakie sprawdzam EXPLAINem) używa poprawnie indeksów.
wookieb
Umiesz wyprofilować aplikację? Chodzi o zaraportowanie zapytań i sprawdzenie, które nie wykorzystują indeksów.
Przy takiej ilości zapytań (na jaki czas?) to właściwie wartości nie są tak oszałamiające.

Możesz wyprofilować zapytania z poziomu php (po prostu rejestru zapytania jakie wchodzą). To że sprawdziłeś większość nie oznacza, że żadnego nie pominąłeś.
TomASS
No właśnie nie za bardzo wiem czego szukać :/
1,5 mln zapytań na 12h.

Nie korzystam z żadnej klasy do DB, więc rejestrowanie wszystkich zapytań jest
a. niemożliwe
b. gdzie miałbym je rejestrować oraz jak przeglądać?

wartości są oszałamiające bo później idą w kilka G - a parametr świeci się na czerwono, więc to znak, że warto coś zoptymalizować
wookieb
używasz tylko mysql_query itd?
A może PDO? Jeżeli PDO to możesz to bardzo łatwo rozszerzyć.

Rejestrować do plików, chodzi tylko o treść zapytania, czas wykonania. Potem możesz za pomocą wyrażenia regularnego wyfiltrować podobne zapytania i je wywalić.

Jeżeli chodzi o inne opcje profilowania to niestety nie mam przy sobie materiałów, które o tym mówią ale jak będę w domu to poszukam.
TomASS
używam tylko mysql_query, czas wykonywania zapytań nic mi nie da - wszystkie o podwyższonym czasie wykonywania rejestrowane są w mysql-slow-queries-log i na bieżąco staram się te zapytania optymalizować.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.