我的DB中有一个包含事务的表,下面是一个例子。
# id, user_id, type, eur_amount, usd_amount, convert_currency, convert_currency_amount, eur_exchange_rate, usd_exchange_rate, payment_source, table_source, table_source_id, package_id, package_name, deleted, date_elem, date_added, date_modified
2, 1803, membership, 60.19, 59.82, EUR, 60.19, 1.000000, 0.993912, website, users_transactions, 2, 103, 1 Monat, 0, 2022-08-22, 2022-08-22 13:03:50, 2022-11-07 11:43:25用户可以使用过滤器来获取每天支付的金额。
例如,他可以在两个日期之间请求数据。
在服务器上,我可以选择两个日期之间的所有数据,并将对象数组返回到前端。然后,前端必须遍历对象,并通过将eur_amount添加到每天的一个总价值中来创建分析。
我也可以使用groupBy等来完成服务器上的所有工作,因此前端不需要进行任何计算。
什么是更好的练习?什么有更好的表现?
发布于 2022-11-07 13:59:36
这正是构建数据库所要做的“繁重工作”。
选择两个日期之间的所有数据..。做所有的工作..。有一个groupBy
对啰!
如果检索所有行,将它们发送到客户端并让它进行聚合,那么您将通过网络发送多个、多倍于网络的行数,这会更慢,并且您依赖于客户端来完成艰苦工作--它可能不够强大,无法完成井的工作。
如果可以的话,一般认为做大部分工作服务器端是“更好”的。
发布于 2022-11-07 19:12:49
在数据库层中进行数据转换的另一个好处是,它将数据的代码、结果和形状集中到一个地方。稍后,您可能会决定要在其他报表或应用程序中使用除主应用程序之外的相同转换的数据,并将其集中在数据库中,这样可以使其更容易使用。
https://dba.stackexchange.com/questions/319296
复制相似问题