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

Eksekusi kueri Mongodb memakan waktu terlalu lama

Ada banyak hal yang harus dilakukan untuk mengoptimalkan kueri Anda. Apa yang akan saya coba :

  • Seperti yang dikatakan Anthony Winzlet dalam komentar, gunakan tahap $match sebanyak mungkin sebagai tahap pertama. Dengan cara ini, Anda dapat mengurangi jumlah dokumen yang diteruskan ke tahap berikut, dan menggunakan indeks.

  • Dengan asumsi Anda menggunakan setidaknya 3.6 versi mongo, ubah tahapan pencarian Anda menggunakan sintaks 'let/pipeline' (lihat di sini ). Dengan cara ini, Anda dapat mengintegrasikan 'filter eksternal' ( "customer_info.status":{$ne:9}, "model_info.status":{$ne:9} ) dalam tahap $match di saluran pencarian Anda. Dengan indeks di bidang/koleksi yang tepat, Anda akan mendapatkan beberapa waktu/memori dalam tahap $lookup Anda.

  • Lakukan tahap bersantai Anda selambat mungkin, untuk membatasi jumlah dokumen yang diteruskan ke tahap berikut.

Sangat penting untuk memahami cara kerja saluran agregasi:setiap tahap menerima data, melakukan tugasnya, dan meneruskan data ke tahap berikutnya. Jadi, semakin sedikit data yang diteruskan ke pipeline, semakin cepat kueri Anda.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Baru di MongoDB Tidak dapat menjalankan perintah mongo

  2. Gunakan $stdDevSamp atau $stdDevPop dengan Spring Mongo

  3. MongoDB (Java) - Bagaimana cara menjalankan kueri yang disimpan dalam file javascript?

  4. Kueri tanggal berfungsi dengan _id tetapi tidak dengan nilai Tanggal - MongoDB

  5. Agregasi pada level bulan dan level tahun, temukan juga rata-ratanya di MongoDB