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

kinerja penghitungan mysql

lihat posting blog berikut:

1) COUNT(***) vs COUNT(col)
2) Kiat Kinerja MySQL Mudah
3) Penghitungan cepat(*) untuk InnoDB

btw, agan pake mesin apa?

DIEDIT: Tentang teknik untuk mempercepat hitungan ketika Anda hanya perlu mengetahui apakah ada sejumlah baris. Maaf, hanya salah dengan permintaan saya. Jadi, ketika Anda hanya perlu tahu, jika ada mis. 300 baris dengan kondisi tertentu Anda dapat mencoba subquery:

select count(*) FROM
( select 1 FROM _table_ WHERE _conditions_ LIMIT 300 ) AS result

pada awalnya Anda mengecilkan set hasil, dan kemudian menghitung hasilnya; itu masih akan memindai set hasil, tetapi Anda dapat membatasinya (sekali lagi, ini berfungsi ketika pertanyaan untuk DB adalah "ada di sini lebih atau kurang dari 300 baris), dan jika DB berisi lebih dari 300 baris yang memenuhi syarat bahwa kueri lebih cepat

Hasil pengujian (tabel saya memiliki 6,7 juta baris):

1) SELECT count(*) FROM _table_ WHERE START_DATE > '2011-02-01'
mengembalikan 4,2 juta selama 65,4 detik

2) SELECT count(*) FROM ( select 1 FROM _table_ WHERE START_DATE > '2011-02-01' LIMIT 100 ) AS result
mengembalikan 100 selama 0,03 detik

Di bawah ini adalah hasil dari permintaan penjelasan untuk melihat apa yang terjadi di sana:

EXPLAIN SELECT count(*) FROM ( select 1 FROM _table_ WHERE START_DATE > '2011-02-01' LIMIT 100 ) AS result



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemicu MySQL PHP - Bagaimana cara meneruskan variabel ke pemicu?

  2. CURTIME() Contoh – MySQL

  3. Kapan indeks basis data harus dibangun kembali?

  4. FIND_IN_SET dengan beberapa nilai

  5. COALESCE di laravel