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

Di mana saya harus meletakkan timeline aktivitas di mongodb, disematkan di pengguna atau secara terpisah?

Kedua artikel tersebut benar dan keduanya salah.

Untuk menyematkan atau tidak menyematkan? Ini adalah pertanyaan kunci yang selalu menjadi pertanyaan utama Anda dan itu tergantung pada kebutuhan, kueri, dan penyimpanan Anda, dan bahkan perangkat kerja Anda.

Pada akhirnya, kami hanya dapat memberikan petunjuk bahwa Anda tidak dapat benar-benar memberi tahu Anda mana yang terbaik.

Namun, mengingat ukuran umpan aktivitas, saya pribadi tidak akan menyematkannya karena dapat dengan mudah tumbuh melewati 16meg (per pengguna) namun untuk kecepatan dan kekuatan kueri Anda dapat menggabungkan, katakanlah, 20 aktivitas terakhir pengguna dan kemudian menyematkan itu ke dalam baris pengguna (karena 20 terakhir biasanya yang paling banyak ditanyakan).

Tetapi kemudian menyematkan agregat bergantung, sharding dapat menangani kueri koleksi berskala besar secara horizontal dan menggunakan kueri yang tepat berarti Anda tidak mendapatkan manfaat nyata dari penyematan dan berpotensi membuat hidup Anda lebih sulit dengan harus mempertahankan indeks, penyimpanan, dan kueri yang diperlukan untuk memelihara subdokumen tersebut.

Adapun penanaman sampai mati. Banyak permintaan MongoDB saat ini sebagian besar bergantung pada penyematan satu atau dua tingkat sehingga itu sebabnya sulit untuk mempertahankan katakanlah 12 tabel bersarang, di mana Anda mulai melihat pertanyaan di sini dan grup Google tentang cara mempertahankannya dokumen besar (jawabannya adalah sisi klien jika Anda benar-benar menginginkannya).

Mempertimbangkan ini, saya akan menempatkan agregat pada pengguna yang berarti pengguna dapat melihat aktivitas pengguna mereka sendiri atau pengguna lain secara tunggal dengan satu perjalanan pulang pergi.

Namun mengingat bahwa seorang guru kemungkinan besar harus memiliki hasil halaman dari semua pengguna, saya akan menyimpan koleksi dan kueri aktivitas terpisah untuk mereka. Mem-paging kumpulan subdokumen memerlukan beberapa kueri dan dalam hal ini akan lebih baik jika dilakukan dengan cara ini.

Semoga itu bisa membantu Anda memulai.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat membuat proyek meteor.js yang berfungsi di kotak gelandangan

  2. Bagaimana menerapkan Peta Hash Berbasis Disk menggunakan MongoDB-Java

  3. MongoDB :temukan nilai dalam Array dengan banyak kriteria

  4. Bagaimana cara memuat data di MongoDB yang berjalan di Host dari dalam Docker yang berjalan di mesin yang sama?

  5. Bagaimana cara mengekspor koleksi ke CSV di MongoDB?