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

MongoDB $slice (halaman array tertanam)

Jadi saya akan mengatakan bahwa Anda harus mengganti skema Anda untuk meninggalkan komentar sebagai dokumen terpisah karena ini adalah array yang tidak terikat dan itu akan membuat kueri Anda lebih efisien. Saya akan menjelaskannya.

Saat Anda menambahkan dokumen yang disematkan ke array yang bukan ukuran tetap, mongoDB berpotensi perlu memindahkan dokumen seiring pertumbuhannya, mengubah faktor padding dan menyebabkan fragmentasi (faktor padding adalah tebakan dari sisi mongodb tentang seberapa besar dokumen Anda nantinya. tumbuh, itu mengalokasikan lebih banyak ruang untuk kasus itu).

Anda juga dibatasi untuk dokumen 16MB pr jadi bayangkan jika Anda mendapatkan utas populer yang gila atau Anda memutuskan untuk memperluas komentar dengan metadata lain, Anda dapat memecahkan penghalang itu. Mengambil dokumen besar juga mahal dan memakan waktu.

Secara umum, dokumen yang disematkan sangat bagus jika bukan array yang tidak terikat. Jadi menyimpan daftar 10 komentar teratas akan bekerja dengan baik, tetapi menyimpan 1000+ komentar itu buruk.

Ada beberapa presentasi yang bagus di bawah

http://www.10gen.com/presentations /mongodb-berlin/2012/10-key-performance-indicators http://www.10gen.com/presentations/mongosv -2011/schema-design-by-example

Saya pikir ada lebih banyak pekerjaan segera hadir pada desain skema yang akan lebih membantu dalam jangka panjang. Saya pikir itu yang paling sulit untuk jujur. Saya tahu, saya butuh beberapa saat untuk memahami perbedaan dari model relasional.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kesalahan mongo pada saya mengontrol perbaikan terbaru

  2. mongodb:kueri untuk periode waktu antara dua bidang tanggal

  3. Spring Boot menghubungkan Mysql dan MongoDb

  4. Apache-Nifi :Hapus koleksi MongoDB

  5. MongoDB:BSON ke JSON