MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Hitungan Mongo sangat lambat ketika ada jutaan catatan

Hitung kueri, diindeks atau lainnya, lambat karena fakta bahwa MongoDB masih harus melakukan perjalanan b-tree penuh untuk menemukan jumlah dokumen yang sesuai yang sesuai dengan kriteria Anda. Alasannya adalah karena struktur b-tree MongoDB tidak "dihitung" artinya setiap node tidak menyimpan informasi tentang jumlah elemen dalam node/subtree.

Masalah ini dilaporkan di sini https://jira.mongodb.org/browse/SERVER-1752 dan saat ini tidak ada solusi untuk meningkatkan kinerja selain secara manual mempertahankan penghitung untuk koleksi tersebut yang jelas memiliki beberapa kelemahan.

Perhatikan juga bahwa versi db.col.count() (jadi tidak ada kriteria) dapat mengambil jalan pintas yang besar dan tidak benar-benar melakukan kueri karena itu kecepatannya. Yang mengatakan itu tidak selalu melaporkan nilai yang sama dengan kueri hitungan yang seharusnya mengembalikan semua elemen (misalnya tidak akan berada di lingkungan yang di-sharded dengan throughput tulis yang tinggi misalnya). Untuk diperdebatkan apakah itu bug atau tidak. Saya rasa begitu.

Perhatikan bahwa dalam 2.3+ pengoptimalan signifikan diperkenalkan yang seharusnya (dan memang) meningkatkan kinerja penghitungan pada bidang yang diindeks. Lihat :https://jira.mongodb.org/browse/SERVER-7745



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara mengembalikan subdokumen dari objek dalam array dengan Meteor dan MongoDB

  2. Struktur dan sintaks kueri untuk dokumen rekursif di MongoDB?

  3. Bagaimana cara menghapus dokumen menggunakan Node.js Mongoose?

  4. Perbedaan antara sekarang dan tanggal tertentu

  5. tanggal di MongoDB:saat memasukkan objek Tanggal ke dalam database Mongo, tanggal menjadi 1 hari lebih awal dari dirinya sendiri