Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> bardzo duże wartości Handler_read_rnd_next
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


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.
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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ś.

Ten post edytował wookieb 7.06.2010, 07:38:22
Go to the top of the page
+Quote Post
TomASS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


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ć

Ten post edytował TomASS 7.06.2010, 08:45:01
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.
Go to the top of the page
+Quote Post
TomASS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


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ć.

Ten post edytował TomASS 7.06.2010, 09:18:44
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.10.2025 - 00:38