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

Apakah melakukan pembaruan sebagian pada dokumen MongoDb di WiredTiger memberikan keuntungan apa pun dibandingkan pembaruan dokumen lengkap?

WiredTiger menggunakan Kontrol Konkurensi Multiversi (MVCC) untuk mempertahankan beberapa tampilan data untuk seumur hidup pembaca. Format dalam memori WiredTiger berbeda dari format pada disk:dalam memori ia menyimpan diffs ke dokumen, tetapi versi lengkap dari dokumen dibangun ketika di-flush ke file data sebagai bagian dari pos pemeriksaan berkala.

Terlepas dari bagaimana mesin penyimpanan MongoDB yang berbeda menangani pembaruan terus-menerus ke disk, masih ada manfaat kinerja dalam menggunakan pembaruan sebagian daripada pembaruan penuh jika memungkinkan (terutama jika Anda menyetel nilai bidang yang relatif kecil terhadap ukuran dokumen keseluruhan).

Misalnya, pertimbangkan:

  • Lalu lintas jaringan untuk pembaruan dokumen (mesin penyimpanan apa pun)
  • Ukuran entri dalam jurnal (mesin penyimpanan apa pun)
  • Ukuran entri dalam oplog replikasi (mesin penyimpanan apa saja)
  • Ukuran versi pembaruan dalam memori (WiredTiger)

Jika Anda mengirim pembaruan dokumen lengkap setiap kali, Anda juga membuat skenario di mana urutan pembaruan mencapai server signifikan bahkan ketika perubahan mungkin untuk kumpulan bidang yang berbeda. Anda dapat menambahkan logika aplikasi tambahan seperti pembuatan versi optimis untuk memastikan Anda tidak menimpa nilai bidang secara tidak sengaja, tetapi ini dapat menambah kerumitan yang tidak perlu bergantung pada kasus penggunaan Anda.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara menganalisis penggunaan disk dari wadah Docker

  2. Hapus gaya kaskade di Mongoose

  3. make gagal mencoba menginstal driver mongo php di Centos 6

  4. Bisakah Meteor menangani data yang diperbarui secara eksternal langsung ke database MongoDB dengan benar?

  5. NoSQL - MongoDB vs CouchDB