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

MongoDB Banyak Indeks vs. Indeks Tunggal pada larik Sub-Dokumen?

Ini pada dasarnya bermuara jika 10 indeks ukuran N lebih efisien daripada satu indeks ukuran N * 10. Jika Anda murni melihat bacaan maka indeks terpisah harus selalu lebih cepat. Jalan b-tree terkait akan memeriksa keyset yang lebih kecil, dll.

Ada beberapa hal yang perlu dipertimbangkan :

  • Indeks pada bidang array pada dasarnya mengindeks setiap elemen array secara terpisah. Dengan demikian overhead pencarian paling banyak akan menjadi 1-2 langkah tambahan selama perjalanan b-tree yang merupakan hit kinerja yang dapat diabaikan. Dengan kata lain, mereka akan hampir sama cepatnya.
  • Memiliki 10 indeks dapat berarti setiap pembaruan/penyisipan akan memerlukan lebih dari satu indeks untuk diperbarui (tergantung pada apakah indeks Anda berbagi bidang atau jika Anda memperbarui lebih dari 1 stempel waktu sekaligus). Ini adalah pertimbangan kinerja yang signifikan.
  • Menggunakan indeks array membuatnya sedikit lebih mudah untuk menambahkan stempel waktu tambahan (mis. Timestamp10).
  • Ada batasan jumlah namespace yang dapat Anda gunakan per database (24k) dan setiap indeks membutuhkan satu. Jika Anda membuat indeks terpisah per bidang, ini mungkin menjadi masalah.
  • Yang paling penting, indeks array jauh lebih mudah dan akan menyederhanakan kode Anda dan dengan demikian pemeliharaan. Mengingat perbedaan kinerja yang terbatas, menurut saya ini adalah motivasi terkuat untuk menggunakan indeks array di sini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Batasi dan urutkan Peta sebaris/Kurangi di MongoDB

  2. mongodb schema.createIndex bukan fungsi

  3. Tidak dapat terhubung ke gambar buruh pelabuhan mongo dengan luwak

  4. Hentikan Replika Set MongoDB

  5. ambiguitas notasi mongo dot