![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 1 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
Chciałbym się zapytać które zapytanie wykona się szybciej: 1.
2.
I w przypadku przykładu 2, do wyciągnięcia danych zamiast mysql_fetch_assoc jest używany mysql_num_rows Wstępnie sprawdziłem i 1 przykład ma takie wyniki: starting 0.000078 checking permissions 0.000011 Opening tables 0.000033 System lock 0.000026 init 0.000015 optimizing 0.000012 executing 0.000010 end 0.000003 query end 0.000003 closing tables 0.000012 freeing items 0.000074 logging slow query 0.000004 cleaning up 0.000003 Natomiast 2: starting 0.000068 checking permissions 0.000010 Opening tables 0.000869 System lock 0.000021 init 0.000023 optimizing 0.000005 statistics 0.000012 preparing 0.000009 executing 0.000003 Sending data 0.000517 end 0.000015 query end 0.000005 closing tables 0.002774 freeing items 0.000215 logging slow query 0.000006 cleaning up 0.000007 przy tabeli z 9000 rekordów |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 14 Dołączył: 3.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Bazy zazwyczaj posiadają dodatkowe informacje o ilości przechowywanych rekordów, nie powodujesz więc pierwszym bezpośrednio wykonania zapytania liczącego tylko odwołanie się do tabeli statystycznej, co jest o wiele szybsze. Poza tym jedziesz mocno po pamięci, która wynik zapytania musi gdzieś przechować do zwrócenia. Jak myślisz... Jedna wiersz o jednej kolumnie zajmuje dużo miejsca w porównaniu z wielowierszowym i wielokolumnowym wynikiem? (IMG:style_emoticons/default/smile.gif)
To co podałes jako wynik jest już zapewne w cache'u bazy i zrobione jednokrotnie, a nie średnią z, powiedzmy, 10000 prób dla różnych wielkościowo i strukturalnie tabel. Im większe tym prościej to zauważyć. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 9.09.2003 Skąd: Bełchatów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Najlepiej robić count() na kolumnach które posiadają indeks założony. Czy będzie to pierwsza, druga czy którąs tam kolumna to już nieważne.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:33 |