Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] zajetosc pamieci
Forum PHP.pl > Forum > Bazy danych > MySQL
qwertys1
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 smile.gif
qwertys1
kefirek
To drugie bedzie szybsze czyli
SELECT count(kolZid) FROM tab WHERE costam
prond
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';
SzamanGN
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!
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.