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

Bagaimana menangani hubungan saat menggunakan mongodb

EDIT:

Baru saja menemukan jawaban dari Brendan McAdams, pria dari 10gen, yang jelas-jelas jauh lebih berwibawa daripada saya, dan dia merekomendasikan untuk menyematkan dokumen.

teks lama:

Yang pertama adalah memasukkan secara manual ke setiap ObjectID komentar pengguna milik mereka.

comment: { text : "...", 
           date: "...", 
           user: ObjectId("4b866f08234ae01d21d89604"),
           votes: 7 }

Cara kedua, dan cara cerdas adalah menggunakan DBRefs

kami menambahkan I/O ekstra ke disk kami, kehilangan kinerja, kan? (Saya tidak yakin bagaimana ini bekerja secara internal) oleh karena itu kita perlu menghindari penautan jika memungkinkan, bukan?

Ya - akan ada satu permintaan lagi, tetapi driver akan melakukannya untuk Anda - Anda dapat menganggap ini sebagai gula sintaksis. Apakah itu mempengaruhi kinerja? Sebenarnya, itu tergantung juga :) Salah satu alasan mengapa Mongo sangat cepat adalah karena menggunakan file yang dipetakan memori dan mongo mencoba yang terbaik untuk menyimpan semua set kerja (plus indeks) langsung di RAM. Dan setiap 60 detik (secara default) menyinkronkan snapshot RAM dengan file berbasis disk.
Saat saya mengatakan working set , maksud saya hal-hal yang sedang Anda kerjakan:Anda dapat memiliki tiga koleksi - foo , bilah , baz , tetapi jika Anda bekerja sekarang hanya dengan foo dan bar, mereka harus dimuat ke ram, sementara baz tetap di disk ditinggalkan. Selain itu, file yang dipetakan memori memungkinkan untuk memuat hanya sebagian dari koleksi. Jadi, jika Anda sedang membangun sesuatu seperti engadget atau techcrunch, ada kemungkinan besar bahwa set kerja akan menjadi komentar selama beberapa hari terakhir dan halaman lama akan lebih jarang dihidupkan kembali (komentar akan muncul ke memori sesuai permintaan), jadi tidak' t mempengaruhi kinerja secara signifikan.

Jadi rekap:selama Anda tetap bekerja di memori (Anda mungkin berpikir itu membaca/menulis caching), mengambil hal-hal itu sangat cepat dan satu permintaan lagi tidak akan menjadi masalah. Jika Anda bekerja dengan potongan data yang tidak sesuai dengan memori, akan ada kecepatan degradasi , tapi sekarang saya tidak melihat keadaan Anda -- itu bisa diterima, jadi dalam kedua kasus saya cenderung memilih gunakan menghubungkan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kembangkan Skema Basis Data untuk Notify like facebook

  2. next.js dan mongodb atlas - mendapatkan Koneksi % dari batas yang dikonfigurasi telah melampaui 80 peringatan

  3. Bagaimana urutan properti dipertahankan untuk diurutkan di mongodb?

  4. mongodb c# pilih bidang tertentu

  5. MongoDB - pengguna admin tidak diotorisasi