Maison > Questions et réponses > le corps du texte
将评论和文章放在一起,这里我有一个疑问,当评论数量很大以后,会不会导致在查询文章列表页的时候效率低下?
如果将comments
剥离到另一个collection
里,这样是不是能缓解只显示文章列表的情况下的压力
{ "_id" : ObjectId(), "author" : "", "comment_num" : "", "comments" : [ { "text" : "", "created" : ISODate(), "author" : "" }, ], "created" : ISODate(), "text" : "", "title" : "" }
大家讲道理2017-04-21 10:59:50
@halty fait valoir un bon point, je ne suis pas entièrement d'accord avec lui. S'il n'y a pas beaucoup de commentaires, le design réalisé est convenable, et ce qui a été dit ci-dessus est très bien. Mais s’il y a trop de commentaires, des problèmes surviennent. Les plus importants sont deux points de départ fondamentaux : 1. Le disque dur est trop lent ; 2. Tant que les données sont en mémoire, il n'y a aucun problème.
Pour résumer, lorsqu'il y a trop de commentaires, cela affectera les performances.
Résumé, la conception du schéma doit être envisagée
find
ci-dessus n'est en fait pas un gros problème. Parce que les commentaires sur les articles populaires sont toujours lus par de nombreuses personnes, il est bon de les conserver en mémoire. Si le document continue de s'allonger, MongoDB allouera automatiquement plus d'espace disque lors de son allocation. Cela dit, je pense que la plupart de ces applications n'auront pas plus d'une centaine de commentaires... A ce moment, un seul document en profitera. Des centaines de commentaires ne poseront pas de problème, et le problème du. le sujet n'est pas un problème. J'espère que la candidature de l'auteur pourra dépasser ce nombre...
ringa_lee2017-04-21 10:59:50
Tout d'abord, assurez-vous que lorsque le nombre de commentaires est important, cela n'entraînera pas d'inefficacité lors de l'interrogation de la page de liste d'articles. Vous pouvez spécifier que le document dans le jeu de résultats de la requête ne renvoie qu'une partie des données du champ (il convient de noter que si vous mettez à jour puis enregistrez un tel document qui ne contient qu'une partie des données du champ, une erreur peut se produire). recommandé et peut être fait facilement. Bon pour économiser la bande passante du réseau.
De plus, MongoDB a actuellement une limite sur la taille d'un seul document. S'il y a trop de commentaires, il peut dépasser la limite de taille par défaut du document. À ce stade, le commentaire doit être supprimé.