c# - 排名页面 - 在哪里计算大的东西(数据库或代码)?

标签 c# .net sql-server database

我有一个具有庞大数据库的新游戏玩家排名页面:

  • 我们有一个世界。
  • 每个世界都有 X 个碎片(~200)。
  • 每个碎片有 2 个派系。
  • 每个碎片有 X 个公会。
  • 公会有 1 个分片、1 个派系,当然还有一个世界。
  • 公会的排名将取决于杀死 Boss。

我将计算公会在世界、分片和派系中的排名。 我只在数据库中保存了 BossKills 的点数。

因此,每次打开显示排名的网站时,我都会进行非常非常大的计算。如何使这个计算尽可能快?

我的想法是创建一个 View ,让 View 进行计算并只取回信息,或者取回我需要的所有信息并在代码中计算。

最佳答案

我肯定会在您的数据库中进行计算。信息就在那里。仅返回需要显示的数据以减少代码的数据传输和处理器时间。

也许可以帮助您换个角度:

如果您的数据需要非常频繁地显示,并且计算成本很高,请考虑将该信息存储在数据库列中,并创建一个触发器来更新,或者每次都在该列中插入一条记录(在您的案例 ) 一个老板被杀。

tblRank

用户ID | Score_in_guild(整数)| ...

关于c# - 排名页面 - 在哪里计算大的东西(数据库或代码)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179262/

相关文章:

c# - 无法将 key 文件添加到 X509Certificate2

c# - FakeItEasy ReturnLazily 具有超过 4 个参数的方法

c# - MEF:目录部分目录

sql-server - 升级到 Python 3.6 和 SQL Server 2016 后出现 Pymssql 错误 20017

sql-server - SQL Server RANK() 用法

c# - 从C++调用uv *作为cv::Mat到WPF应用程序BitmapSource?

c# - 是否可以在 C# 中使用基于键/值对的键的值类型?

c# - HttpWebResponse.LastModified 的默认值

.net - 混淆与非托管程序集

c# - 已达到 SQL Server 最大数据库数