Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 15920|Odpowiedź: 1

[Źródło] Nieporozumienie count(0) i count(*) w instrukcjach SQL

[Skopiuj link]
Opublikowano 10.08.2017 13:29:00 | | |
Ostatnio funkcja liczbowa była często używana, a gdy liczba do zliczenia jest stosunkowo duża, okazuje się, że count(*) zajmuje więcej czasu, a count(1) krócej.

Niektóre dokumenty zawierają następujące stwierdzenia:

Jeśli twoja tabela danych nie ma klucza głównego, count(1) jest szybszy niż count(*).  
Jeśli istnieje klucz główny, to klucz główny (wspólny klucz główny) jest również szybszy niż count(*).  
Jeśli twoja tabela ma tylko jedno pole, count(*) jest najszybsza  
count(*) count(1) Porównaj obie grupy. Najważniejsze jest policzenie pól danych odpowiadających (1).  
Jeśli count(1) jest polyindeksem, id, to count(1) musi być szybszy. Ale różnica jest bardzo niewielka.  
Ponieważ count(*) pole jest automatycznie optymalizowane, aby określić do. Więc nie ma potrzeby liczenia(?), używaj count(*), SQL pomoże ci ukończyć optymalizację

  Szczegóły liczenia:
count(*) zwraca łączną liczbę wszystkich wierszy obecnych w tabeli, w tym wierszy o wartości null,Jednak count (nazwa kolumny) zwraca łączną liczbę wszystkich wierszy w tabeli oprócz null(Liczone są także kolumny o wartościach domyślnych).
odrębna nazwa kolumny, wynik będzie wynikiem po usunięciu wartości zerowej i zduplikowaniu danych


W przeszłości nie wiedziałem, że blog mówił, iż wszystkim zaleca się używanie count(0) i że efektywność zapytań jest stosunkowo wysoka itd

Obecnie okazuje się, że używanie count(0) jest błędnym przekonaniem!!
count(0) Pierwsza kolumna statystyk nie jest pusta

Nie używaj numeru (nazwa kolumny) ani liczenia (stałe) zamiast liczenia(*),

count(*) to składnia standardowej liczby wierszy zdefiniowanej przez SQL92, która nie ma nic wspólnego z bazą danych, NULL i non-NULL.

Uwaga: count(*) liczy wiersze z wartością NULL, natomiast count(nazwa kolumny) nie liczy wierszy z wartością NULL.

Dlatego w przyszłości, gdy robisz wszystkie statystyki i nie wykluczasz pustych danych, lepiej szczerze użyć liczby (*)!!








Poprzedni:Różnica między zmiennymi definicyjnymi niech i var w js
Następny:jquery implementuje tabelę do wyświetlania do 10 fragmentów danych
Opublikowano 10.08.2017 13:54:00 |
Nauczanie                 
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com