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

Performa sangat menurun dengan kondisi bergabung lainnya di $lookup (menggunakan pipa)

Versi kedua menambahkan eksekusi pipeline agregasi untuk setiap dokumen dalam koleksi yang digabungkan .

Dokumentasi mengatakan:

Pipeline dijalankan untuk setiap dokumen dalam koleksi, bukan untuk setiap dokumen yang cocok.

Bergantung pada seberapa besar koleksinya (baik # dokumen maupun ukuran dokumen), ini dapat menghasilkan jumlah waktu yang layak.

Masuk akal - semua dokumen tambahan karena penghapusan batas juga harus memiliki pipa agregasi yang dijalankan untuk mereka.

Ada kemungkinan bahwa eksekusi per-dokumen dari pipa agregasi tidak dioptimalkan seperti yang seharusnya. Misalnya, jika jalur pipa disiapkan dan diruntuhkan untuk setiap dokumen, mungkin ada lebih banyak overhead di itu daripada dalam kondisi $match.

Menjalankan pipa agregasi per dokumen yang digabungkan memberikan fleksibilitas tambahan. Jika Anda membutuhkan fleksibilitas ini, mungkin masuk akal untuk mengeksekusi pipeline, meskipun kinerja perlu dipertimbangkan. Jika tidak, sebaiknya gunakan pendekatan yang lebih berkinerja.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb:agregasi $lookup dengan penyaringan atas dokumen asing

  2. Bagaimana cara mengatur batas waktu koneksi MongoClient?

  3. bagaimana cara menerapkan pagination gulir tak terbatas di sudut 5?

  4. $proyek di $lookup mongodb

  5. Buat Cluster Database di Cloud Dengan MongoDB Atlas