![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 21.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Pracuję nad dość obszerną bazą danych i potrzebuje choć w pewnym stopniu skrócić czas zapytań. Chodzi konkretnie o liczenie ilości zwróconych rekordów. W kilku miejscach wyczytałem, że SQL_CALC_FOUND_ROWS jest szybsze niż COUNT(). Z testów przeprowadzonych przeze mnie wynika co innego, COUNT() jest szybsze. Czy mógłby mi ktoś powiedzieć co robię nie tak? Czy możliwą przyczyną jest np zła konfiguracja bazy danych lub serwera?
Oto kod testu:
skrypt zwraca przykładowo taki wynik: 25041 rekordów w 0.059356918334961s 25041 rekordów w 0.087986965179443s Za każdym razem COUNT() jest szybsze, nie raz dwukrotnie. Words to prosta tabela składająca się tylko z dwóch pól id i word. Z góry dziękuję za pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po primo źle do tego podszedłeś
To rozbij na dwa zapytania... Po secundo Czas potrzebny na pobranie wyników oraz ich liczby może wychodzić różnie dla obu przypadków. Pamiętaj, że w przypadku użycia COUNT masz dwa czasy - T1 czas pobrania rekordów (SELECT *...) - T2 czas liczenia rekordów (SELECT COUNT(*) ...) T1 powinien być oczywiście większy od T2. W przypadku użycia SQL_CALC_FOUND_ROWS sytuacja wygląda nieco inaczej - T3 czas pobrania rekordów oraz kalkulowania liczby wyników - T4 czas pobrania liczby wyników T3 będzie zawsze większy od T1 a T4 pomijalny. Grunt aby T3 < T1+T2 ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:06 |