0

我有一个疑问,就性能而言,最好是从 MySQL 上的大型数据库(50k+ 行增长)中检索“计算”数据还是即时执行微积分?

微积分只是从数据库中检索到的一些数据的简单除法和乘法,但有很多数据(每次加载最少约 300 个微积分)。

另请注意,此“页面”可以多次加载(它不是唯一的一次加载)。

我认为计算值(例如使用后台任务)然后仅从数据库中检索是性能方面的最佳解决方案,对吗?

两种方法有很大区别吗?

4

1 回答 1

1

我会发挥每个系统的优势。

聚合、连接和过滤逻辑显然属于数据层。它更快,不仅因为大多数数据库引擎为此进行了 10 多年的优化,而且您可以最大限度地减少在数据库和 Web 服务器之间转移的数据。

另一方面,我使用的大多数数据库平台在处理单个值方面的功能都很差。诸如日期格式和字符串操作之类的东西在 SQL 中很糟糕,你最好在 PHP 中完成这项工作。

基本上,将每个系统用于其构建的目的。

在可维护性方面,只要清楚地区分发生在哪里,将这些划分为逻辑类型应该不会造成太大问题,当然也不足以抵消好处。在我看来,代码的清晰性和可维护性更多的是关于一致性,而不是把所有逻辑放在一个地方。

总结:我会明确地使用数据库来解决您的问题。

于 2013-05-09T17:35:13.200 回答