mongodb 处理大数据量问题咨询

我们现在有两张表特别大,比如年级表和学生表,我们现在项目组特别纠结,是想学生的信息作为子集,放在年级表上,还是将两表拆开,通过外键关联,以下是我整理的利弊,求有相关经验做过大数据分表方案的同学给予验证

一、拆成两张表的时候

1.查询单表sql简单,出错率低

1.不利于分表,后续比如年级和学生分表,通过年级查询学生,得查所有表学生才能组合出年级的数据
2.查询年级的时候,需要多查询一次学生,如果查询的年级特别多,那么效率会随之降低

二.组装成一张表的时候,让学生信息作为一个子集

1.查询的关联次数会大大减少

1.查子集的时候特别复杂,涉及到一堆的聚合函数,且复杂的sql是否导致性能急剧下降也未知

求各位的方案和思路

两种方案各有利弊。如果数据量比较大,建议使用分表的方式来提高查询效率,同时使用外键来建立两张表之间的关联。这样可以有效地利用索引加速查询,同时还可以避免将多张表合并为一张表时带来的困难。

在决定使用哪种方案时,建议先进行性能测试,评估哪种方案对于应用程序更优。

mongo大数据处理优化
写的非常详细,多种方法,你可以借鉴下
https://blog.csdn.net/Long861774/article/details/126153715

各有利弊,这里有一个思路,你分析看看是否可行:通过条件查询+排序+限制返回记录,即 边查询,边排序,排序之后,抽取上一页中的最后一条记录,作为当前分页的查询条件,从而避免了skip效率低下的问题。
这是借鉴实例【解决mongodb大数据量分页查询效率问题】,链接:https://blog.csdn.net/heihu_malice7/article/details/78958916?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EESLANDING%7Edefault-14-78958916-blog-126153715.pc_relevant_landingrelevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EESLANDING%7Edefault-14-78958916-blog-126153715.pc_relevant_landingrelevant&utm_relevant_index=22