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

Masalah kinerja MongoDB:Koleksi Besar Tunggal vs Beberapa Koleksi Kecil

Memisahkan koleksi memberi Anda indeks gratis tanpa biaya tambahan yang nyata. Ada biaya tambahan untuk pemindaian indeks, terutama jika indeks tidak benar-benar membantu Anda mengurangi jumlah hasil yang harus dipindai (jika Anda memiliki sejuta hasil dalam indeks, tetapi Anda harus memindai semuanya dan memeriksanya, itu tidak akan banyak membantu Anda).

Singkatnya, memisahkan mereka adalah pengoptimalan yang valid, tetapi Anda harus membuat indeks Anda lebih baik untuk kueri Anda sebelum Anda benar-benar memutuskan untuk mengambil rute itu, yang saya anggap sebagai ukuran drastis (indeks pada harga produk mungkin lebih membantu Anda dalam kasus ini) .

Menggunakan explain() dapat membantu Anda memahami cara kerja kueri. Beberapa dasarnya adalah:Idealnya Anda menginginkan rasio nscanned to n yang rendah. Anda tidak ingin scanAndOrder =true, dan Anda biasanya tidak menginginkan BasicCursor (ini berarti Anda tidak menggunakan indeks sama sekali).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kueri tanggal berfungsi dengan _id tetapi tidak dengan nilai Tanggal - MongoDB

  2. PyMongo upsert melempar upsert harus menjadi contoh kesalahan bool

  3. PHP MongoDB agregat $match dan $group dan $addToSet

  4. Mongoose:Tidak dapat mengambil dokumen file dari koleksi .chunk tanpa bidang data

  5. Pengelompokan bersyarat dengan $ada di dalam $cond