Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] zajetosc pamieci, count(*) czy count(kolumnaZid)?
qwertys1
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.01.2009

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


witam,
majac przykladowa tabele z wieloma kolumnami

tabela 'tab':
kolZid, kol1, kol2, kol3,...koln

w ktorej znajduje sie duzo rekordow, jakie zapytanie zajmie mniej zasobow i bedzie szybsze?

1. SELECT count(*) FROM tab WHERE costam
czy
2. SELECT count(kolZid) FROM tab WHERE costam

z gory dziekuje za pomoc
pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
qwertys1
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


To drugie bedzie szybsze czyli
SELECT count(kolZid) FROM tab WHERE costam
Go to the top of the page
+Quote Post
prond
post
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Strzelałbym, że jednak count(*) jest szybsze, przynajmniej powinno, bo nie musi zwracać uwagi na wartości NULL.
Jednak jak już mowa o wydajności to poniższe zapytanie wykręci najlepszy wynik:
  1. SELECT table_rows FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'nazwa_bazy' AND table_name = 'nazwa_tabeli';
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://dev.mysql.com/doc/refman/5.0/en/inf...tion_found-rows
Go to the top of the page
+Quote Post
SzamanGN
post
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

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


Testowałem zapytania przy sześciu rekordach i oto wyniki:
  1. SELECT COUNT(*) FROM tabela

trwało 0,000338 sekundy, a
  1. SELECT COUNT(pole) FROM tabela

trwało 0,000303 sekundy, tak więc zapytanie z polem jest szybsze!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 17:30