【发布时间】:2019-09-12 20:05:10
【问题描述】:
请帮我找到一种方法来提高效率
该程序具有以下实体:
项目 1-N 模块
模块 1-N 个子模块。
子模块 1-N 段 .
每个段都有不同的状态(默认/已完成)和字数
字数是在将句段插入数据库并存储在列中时进行的。
观看次数。 项目列表 应该有少于 100 个项目,因此我列出了所有项目,但不包括在内。
模块列表(参数为 1 projectId)应该有一列包含单词已完成/总计和行数已完成/总计
子模块列表(参数为 1 moduleId)应该有一列包含已完成的单词/总计和已完成的行数/总计
假设我每个模块大约有 50k 行(段)。所以性能是必须的。
选项 1:
某种 IQueryable Childs.Count()
选项 2:
使用 CRON 作业将 Stats 列添加到数据库中的表以更新它们
或者在 mysql 中有一个存储过程/触发器。
选项 3?: 在 mysql 中创建 2 个视图?从未做过,但也许它们适合这项工作?
建议的选项:还没有
以前从未使用过如此大的数据集,性能是必须的。 请指教
【问题讨论】:
-
您的具体问题是什么?请显示不起作用的代码。
-
并不是说它不起作用,我不知道计算此类儿童实体统计数据的正确方法是什么。它们是大桌子,每次加载视图时都不想让服务器着火。具体问题是:如何在视图中有效地显示已完成的单词/总单词
-
为什么不尝试这 3 个选项并衡量差异呢?通常,数据库端的视图是最快的。
标签: c# mysql asp.net performance entity-framework