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

Haruskah kita menggunakan dbref atau dokumen yang disematkan dalam aplikasi yang banyak membaca

DBref tidak seperti kunci Asing dalam sistem relasional tradisional. Ini hanya konvensi yang dengan mudah memberi tahu pengemudi (yang mampu) untuk memuat dokumen yang dirujuk secara otomatis. Silakan lihat DBRef untuk informasi lebih lanjut tentang ini.

Tergantung pada driver yang digunakan, Anda mungkin dapat memuat referensi tersebut secara otomatis hanya ketika Anda membutuhkannya (malas), sehingga kinerja overhead harus sangat kecil. Tetapi overhead penyimpanan sedikit lebih tinggi daripada _id referensi sederhana dari dokumen lain. Pada dasarnya, saya akan mengatakan bahwa Anda hanya boleh menggunakan DBrefs tersebut jika dokumen yang ditautkan dapat berupa tipe variabel. Jika statis maka Anda terjebak dengan _id-references dan mungkin fungsi lazy loader Anda sendiri, jadi Anda tidak mengulanginya sendiri.

Jangan ulangi diri Anda sendiri (atau duplikasi data dalam istilah basis data) berlaku dalam konteks Anda juga, seperti yang direkomendasikan MongoDB (jadi saya juga akan melakukannya), adalah hanya tautkan dokumen Anda . Jika tidak, Anda akan memiliki penggunaan penyimpanan yang lebih tinggi dan pembaruan yang berjalan agak lama, untuk memperbarui hanya satu entitas logis (sangat sering diduplikasi secara fisik).

Dengan pemuat malas khusus yang disebutkan sebelumnya, Anda dapat menambahkan beberapa cache sehingga tidak setiap pencarian benar-benar menghasilkan pencarian mongodb. Kemungkinan besar Anda perlu menjaga konsistensi data antara cache dan db.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Grup bersarang MongoDB?

  2. elemMatch dikombinasikan dengan bidang kueri lain di Mongoose

  3. Bagaimana cara membuat serial chrono::DateTime sebagai ISODate saat menggunakan prototipe driver Rust Mongo?

  4. Apa itu TransientTransactionError di Mongoose (atau MongoDB)?

  5. Kueri agregasi luwak mengembalikan lebih dari satu catatan ketika seharusnya hanya mengembalikan satu