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

Apakah boleh meminta MongoDB beberapa kali per permintaan?

Untuk menjawab Q tentang $in....

Saya melakukan beberapa tes kinerja dengan skenario berikut:

~24 juta dokumen dalam koleksi
Cari 1 juta dokumen tersebut berdasarkan kunci (diindeks)
Menggunakan driver CSharp dari .NET

Hasil:
Kueri 1 pada satu waktu, satu utas :109s
Kueri 1 per satu, multi utas :48s
Meminta 100K sekaligus menggunakan $in, satu utas=20s
Kueri 100K sekaligus menggunakan $in, multi threaded=9s

Jadi kinerja yang lebih baik secara nyata menggunakan $in yang besar (dibatasi untuk ukuran kueri maksimum).

Pembaruan: Melanjutkan dari komentar di bawah tentang bagaimana kinerja $in dengan ukuran chunk yang berbeda (query multi-threaded):

Membuat kueri 10 sekaligus (100000 batch) =8,8 detik
Meminta 100 sekaligus (10000 batch) =4,32 detik
Meminta 1000 sekaligus (1000 batch) =4,31
Meminta 10000 sekaligus (100 batch) =8,4 detik
Meminta 100000 sekaligus (10 batch) =9 detik (per hasil asli di atas)

Jadi tampaknya ada titik manis untuk berapa banyak nilai yang akan digabungkan ke dalam klausa $in vs. jumlah perjalanan pulang pergi




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. praktik terbaik pengumpulan Django + PyMongo?

  2. Mongoose - RangeError:Ukuran Tumpukan Panggilan Maksimum Melebihi

  3. cara mengelompokkan di mongoDB dan mengembalikan semua bidang dalam hasil

  4. Operator Kueri $type MongoDB

  5. $push dan $set dalam pembaruan MongoDB yang sama