Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa yang lebih baik di MYSQL count(*) atau count(1)?

Ini adalah jawaban MySQL.

Mereka melakukan hal yang sama persis - kecuali Anda menggunakan MyISAM, maka kasus khusus untuk COUNT(*) ada. Saya selalu menggunakan COUNT(*) bagaimanapun juga.

https://dev.mysql.com/doc /refman/5.6/en/aggregate-functions.html#function_count

Untuk MyISAM tabel, COUNT(*) dioptimalkan untuk kembali dengan sangat cepat jika SELECT mengambil dari satu tabel, tidak ada kolom lain yang diambil, dan tidak ada WHERE ayat. Misalnya:

mysql> SELECT COUNT(*) FROM student;

Pengoptimalan ini hanya berlaku untuk MyISAM tabel, karena jumlah baris yang tepat disimpan untuk mesin penyimpanan ini dan dapat diakses dengan sangat cepat. COUNT(1) hanya tunduk pada optimasi yang sama jika kolom pertama didefinisikan sebagai NOT NULL .

###EDITBeberapa dari Anda mungkin melewatkan upaya gelap dalam humor. Saya lebih suka menyimpan ini sebagai pertanyaan non-duplikat untuk hari seperti itu ketika MySQL akan melakukan sesuatu yang berbeda dengan SQL Server. Jadi saya memberikan suara untuk membuka kembali pertanyaan (dengan jawaban yang jelas salah).

Pengoptimalan MyISAM di atas berlaku sama untuk

COUNT(*)
COUNT(1)
COUNT(pk-column)
COUNT(any-non-nullable-column)

Jadi jawaban sebenarnya adalah mereka selalu sama.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Anda terhubung ke beberapa database MySQL pada satu halaman web?

  2. Cara Menghapus Prosedur Tersimpan di MySQL

  3. GET_FORMAT() Contoh – MySQL

  4. Kapitalisasi huruf pertama. MySQL

  5. Kueri SQL mengembalikan data dari beberapa tabel