COUNT(*) vs. COUNT(column_name): Bilakah Anda Harus Menggunakan Fungsi MySQL Yang Mana?

Barbara Streisand
Lepaskan: 2024-11-24 09:33:17
asal
155 orang telah melayarinya

COUNT(*) vs. COUNT(column_name): When Should You Use Which MySQL Function?

Memahami Perbezaan Antara COUNT(*) dan COUNT(column_name)

Dalam MySQL, COUNT(*) dan COUNT(column_name) fungsi memainkan peranan penting dalam pengagregatan data. Walaupun kedua-duanya mengembalikan bilangan baris dalam set hasil, terdapat perbezaan halus antara baris tersebut yang boleh menjejaskan ketepatan dan prestasi pertanyaan anda.

COUNT(*) lwn. COUNT(column_name)

  • COUNT(*): Fungsi ini mengira semua baris dalam set hasil, tidak kira sama ada lajur tertentu mengandungi nilai NULL. Kelebihan utamanya ialah kelajuannya kerana ia tidak perlu menyemak nilai NULL.
  • COUNT(column_name): Tidak seperti COUNT(), fungsi ini hanya mengira baris di mana lajur yang ditentukan bukan nol. Dengan mengecualikan nilai nol, COUNT(column_name) memberikan kiraan nilai bukan kosong yang lebih tepat. Walau bagaimanapun, ia boleh menjadi lebih perlahan daripada COUNT() dalam senario tertentu, terutamanya apabila berurusan dengan set data yang besar dan apabila nilai nol hadir.

Alternatif: COUNT(1)

Fungsi COUNT(1) pada asasnya berkelakuan sama seperti COUNT(). Ia mengira semua baris dalam set hasil kerana 1 tidak pernah batal. Akibatnya, COUNT(1) menawarkan kelebihan prestasi yang sama COUNT().

Demonstrasi

Untuk menggambarkan perbezaan antara fungsi ini, pertimbangkan mengikuti contoh:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;
Salin selepas log masuk

Keputusan:

a   b   c
3   2   3
Salin selepas log masuk

Seperti yang anda boleh lihat, COUNT() mengembalikan 3, mengira kedua-dua nilai null dan non-null . COUNT(x) mengembalikan 2, tidak termasuk nilai nol. Dan COUNT(1) sepadan dengan kiraan COUNT() pada 3.

Atas ialah kandungan terperinci COUNT(*) vs. COUNT(column_name): Bilakah Anda Harus Menggunakan Fungsi MySQL Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan