Rumah > Soal Jawab > teks badan
将评论和文章放在一起,这里我有一个疑问,当评论数量很大以后,会不会导致在查询文章列表页的时候效率低下?
如果将comments
剥离到另一个collection
里,这样是不是能缓解只显示文章列表的情况下的压力
{ "_id" : ObjectId(), "author" : "", "comment_num" : "", "comments" : [ { "text" : "", "created" : ISODate(), "author" : "" }, ], "created" : ISODate(), "text" : "", "title" : "" }
大家讲道理2017-04-21 10:59:50
@halty membuat perkara yang baik, jangan bersetuju sepenuhnya dengannya. Jika tidak banyak komen, reka bentuk yang disatukan adalah sesuai, dan apa yang dikatakan di atas sangat bagus. Tetapi jika terlalu banyak komen, masalah timbul. Yang paling penting ialah dua titik permulaan asas: 1. Cakera keras terlalu perlahan; 2. Selagi data dalam ingatan, tiada masalah.
Ringkasnya, apabila terdapat terlalu banyak komen, ia akan menjejaskan prestasi.
Ringkasan, reka bentuk skema harus dipertimbangkan
find
pertama di atas sebenarnya bukan masalah besar. Oleh kerana komen pada artikel popular selalu dibaca oleh ramai orang, adalah baik untuk menyimpannya dalam ingatan. Jika dokumen semakin panjang, MongoDB akan memperuntukkan lebih banyak ruang cakera secara automatik apabila memperuntukkannya. Setelah berkata demikian, saya fikir kebanyakan aplikasi ini tidak akan mempunyai lebih daripada seratus komen... Pada masa ini, satu dokumen akan mengambil kesempatan daripadanya, dan masalahnya subjek tidak menjadi masalah. Saya harap permohonan penulis dapat melebihi angka ini...
ringa_lee2017-04-21 10:59:50
Pertama sekali, pastikan bahawa apabila bilangan komen adalah besar, ia tidak akan membawa kepada ketidakcekapan apabila membuat pertanyaan pada halaman senarai artikel. Anda boleh menentukan bahawa dokumen dalam set hasil pertanyaan hanya mengembalikan sebahagian daripada data medan (perlu diperhatikan bahawa jika anda mengemas kini dan kemudian menyimpan dokumen sedemikian yang hanya mengandungi sebahagian daripada data medan, ralat mungkin berlaku). disyorkan dan boleh dilakukan dengan mudah.
Selain itu, pada masa ini MongoDB mempunyai had pada saiz satu dokumen Jika terdapat terlalu banyak ulasan, ia mungkin melebihi had saiz lalai dokumen Pada masa ini, ulasan itu perlu dilucutkan.