Baru-baru ini, fungsi angka telah banyak digunakan, dan ketika angka yang akan dihitung relatif besar, ditemukan bahwa count(*) membutuhkan lebih banyak waktu, dan count(1) membutuhkan waktu lebih sedikit.
Beberapa dokumen memiliki pernyataan berikut:
Jika tabel data Anda tidak memiliki kunci primer, maka count(1) lebih cepat daripada count(*). Jika ada kunci primer, maka kunci primer (kunci primer bersama) juga lebih cepat dari count(*). Jika tabel Anda hanya memiliki satu bidang, maka count(*) adalah yang tercepat count(*) count(1) Bandingkan keduanya. Hal utama adalah menghitung bidang data yang sesuai dengan (1). Jika count(1) adalah polyindex, id, maka itu harus count(1) lebih cepat. Tapi perbedaannya sangat kecil. Karena count(*), bidang secara otomatis dioptimalkan untuk menentukan ke. Jadi tidak perlu count(?), gunakan count(*), SQL akan membantu Anda menyelesaikan pengoptimalan
Detail Hitungan: count(*) akan mengembalikan jumlah total semua baris yang ada dalam tabel, termasuk baris dengan nilai null,Namun, count (nama kolom) akan mengembalikan jumlah total semua baris dalam tabel kecuali null(Kolom dengan nilai default juga dihitung). nama kolom yang berbeda, hasilnya akan menjadi hasil setelah menghapus nilai null dan data duplikat
Di masa lalu, saya tidak tahu bahwa blog mengatakan bahwa semua orang direkomendasikan untuk menggunakan count(0) dan bahwa efisiensi kueri relatif tinggi, dll
Saat ini, ditemukan bahwa menggunakan count(0) adalah kesalahpahaman!!
count(0) Kolom pertama statistik tidak kosong
Jangan gunakan number(nama kolom) atau count(constant) alih-alih count(*),
count(*) adalah sintaks untuk jumlah baris standar yang ditentukan oleh SQL92, yang tidak ada hubungannya dengan database, NULL dan non-NULL.
Catatan: count(*) menghitung baris dengan nilai NULL, sedangkan count(nama kolom) tidak menghitung baris dengan nilai NULL.
Oleh karena itu, di masa depan, ketika Anda melakukan semua statistik dan tidak mengesampingkan data kosong, lebih baik menggunakan hitungan (*) dengan jujur!!
|