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

mongodb.countDocuments lambat ketika set hasil besar bahkan jika indeks digunakan

Menghitung sepertinya seperti salah satu hal yang seharusnya murah, tetapi seringkali tidak. Karena mongo tidak mempertahankan hitungan jumlah dokumen yang sesuai dengan kriteria tertentu dalam indeks b-tree-nya, mongo perlu memindai dokumen penghitungan indeks saat berjalan. Itu berarti menghitung 100x dokumen akan memakan waktu 100x, dan kira-kira seperti ini yang kita lihat di sini -- 0.018 * 100 = 1.8s .

Untuk mempercepatnya, Anda memiliki beberapa opsi:

  1. Jumlah aktif kira-kira estimatedDocumentCount() - db.users.countDocuments({status: 'inactive'}) . Apakah ini cukup akurat untuk kasus penggunaan Anda?
  2. Atau, Anda dapat mempertahankan counts dokumen dalam koleksi terpisah yang Anda sinkronkan dengan jumlah dokumen aktif/tidak aktif yang Anda miliki.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kesalahan Mongod:98 Tidak dapat mengunci file:/data/db/mongod.lock Sumber daya tidak tersedia untuk sementara. Apakah instance mongod sudah berjalan?

  2. Cara memformat data untuk MongoEngine PointField

  3. Memasang Blob Halaman sebagai VHD dalam file batch

  4. JBAS011445:Gagal mendapatkan adaptor untuk penyedia persistensi 'org.hibernate.ogm.jpa.HibernateOgmPersistence'

  5. Bagaimana cara FILTER mengembalikan data antara dua tanggal dari mongodb menggunakan agregasi:kecocokan, pencarian, dan proyek?