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

Mengapa dan kapan diperlukan untuk membangun kembali indeks di MongoDB?

Sesuai dengan dokumentasi MongoDB, umumnya tidak perlu secara rutin membangun kembali indeks.

CATATAN :Setiap saran tentang penyimpanan menjadi lebih menarik dengan MongoDB 3.0+, yang memperkenalkan API mesin penyimpanan yang dapat dicolokkan . Komentar saya di bawah ini secara khusus mengacu pada mesin penyimpanan MMAP default di MongoDB 3.0 dan sebelumnya. WiredTiger dan mesin penyimpanan lainnya memiliki implementasi penyimpanan yang berbeda untuk data &indeks.

Mungkin ada beberapa manfaat dalam membangun kembali indeks dengan mesin penyimpanan MMAP jika:

  • Sebuah indeks mengkonsumsi jumlah ruang yang lebih besar dari yang diharapkan dibandingkan dengan data. Catatan:Anda perlu memantau data historis &ukuran indeks untuk memiliki dasar perbandingan.

  • Anda ingin bermigrasi dari format indeks yang lebih lama ke yang lebih baru. Jika pengindeksan ulang dapat dilakukan, ini akan disebutkan dalam catatan pemutakhiran. Misalnya, MongoDB 2.0 memperkenalkan peningkatan kinerja indeks jadi catatan rilis menyertakan indeks ulang yang disarankan ke format v2.0 setelah memutakhirkan. Demikian pula, MongoDB 2.6 memperkenalkan 2dsphere (v2.0) indeks yang memiliki perilaku default yang berbeda (jarang secara default). Indeks yang ada tidak dibangun kembali setelah peningkatan versi indeks; pilihan jika/kapan untuk memutakhirkan diserahkan kepada administrator basis data.

  • Anda telah mengubah _id format untuk koleksi ke atau dari kunci yang meningkat secara monoton (mis. ObjectID) ke nilai acak. Ini agak esoteris, tetapi ada pengoptimalan indeks yang membagi ember b-tree 90/10 (bukan 50/50) jika Anda memasukkan _id s yang selalu meningkat (ref:SERVER-983 ). Jika sifat _id Anda s berubah secara signifikan, dimungkinkan untuk membangun b-tree yang lebih efisien dengan indeks ulang.

Untuk informasi lebih lanjut tentang perilaku B-tree umum, lihat:Wikipedia:B-tree

Memvisualisasikan penggunaan indeks

Jika Anda benar-benar penasaran untuk menggali lebih dalam indeks internal, ada beberapa perintah/alat eksperimental yang dapat Anda coba. Saya berharap ini terbatas pada MongoDB 2.4 &2.6 saja:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js - Mongoose - Periksa apakah ada koleksi

  2. Jarak cetak MongoDB antara dua titik

  3. Apakah mungkin untuk menggunakan MongoDB-Query?

  4. REACT mengambil permintaan posting

  5. Bagaimana cara mendapatkan ukuran dokumen tunggal di Mongodb?