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

Implementasi pengindeksan internal MongoDB?

Saya pikir, Anda memiliki gagasan bahwa indeks disimpan dalam RAM. Bagaimana jika saya mengatakan mereka tidak.

Pertama-tama kita perlu memahami apa itu indeks, indeks pada dasarnya adalah penunjuk untuk memberi tahu di mana dokumen itu berada di disk. Seperti halnya kita memiliki pengindeksan dalam buku, untuk akses yang lebih cepat kita dapat melihat topik apa yang ada di nomor halaman mana.

Jadi ketika indeks dibuat, mereka juga disimpan dalam disk, Tapi ketika aplikasi sedang berjalan, berdasarkan penggunaan yang sering dan akses yang lebih cepat, mereka dimuat ke dalam RAM tetapi ada perbedaan antara dimuat dan dibuat.

Juga memuat indeks tidak sama dengan memuat koleksi atau catatan ke dalam RAM. Jika kita telah memuat indeks, kita tahu semua dokumen apa yang diambil dari disk, tidak seperti memuat semua dokumen dan memverifikasi masing-masing. Jadi indeks menghindari pemindaian koleksi.

Pembuatan indeks adalah proses satu kali, tetapi setiap penulisan pada dokumen berpotensi mengubah pengindeksan, sehingga beberapa bagian mungkin perlu dihitung ulang karena catatan mungkin diacak berdasarkan perubahan data. itulah mengapa pengindeksan membuat penulisan menjadi lambat dan membaca dengan cepat.

Sekali lagi anggaplah sebagai sebuah buku, jika Anda menambahkan topik baru katakanlah 2 halaman di antara buku, semua indeks setelah nomor topik itu perlu dihitung ulang. demikian.

  • Tidak, catatan tidak disimpan dalam RAM, saat membuatnya semacam memproses semua dokumen dalam koleksi dan membuat lembar indeks, ini akan memakan waktu dapat dimengerti jika ada terlalu banyak dokumen, itu sebabnya ada opsi untuk membuat indeks di latar belakang.
  • Indeks dibuat satu kali, Anda dapat menghapusnya dan membuat lagi, tetapi tidak akan dibuat ulang pada aplikasi atau DB restart. itu akan menjadi gila untuk koleksi besar di lingkungan sharded.
  • Sekali lagi itu tidak benar. _id hadir sebagai bidang yang diindeks, jadi indeks sudah dibuat untuk koleksi kosong, seperti ketika Anda melakukan write , itu akan menghitung ulang indeks. Karena ini adalah indeks yang unik, pemrosesannya akan lebih cepat.
  • semua catatan hanya akan disimpan dalam RAM saat Anda menggunakan mesin dalam memori MongoDB, yang menurut saya hadir sebagai edisi perusahaan. Karena pengindeksan itu tidak akan secara otomatis memuat catatan ke dalam RAM.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Data REST :kueri khusus untuk repositori MongoDB

  2. MongoError:nama database tidak boleh berisi karakter ' ' saat menggunakan mongoosejs, sambungkan ke mLab

  3. kembalikan kueri berdasarkan tanggal

  4. Cara mengambil item berikutnya dan sebelumnya dari item saat ini dengan Mongoose

  5. Mongodb memperbarui elemen spesifik dari subarray