我正在编写一个应用程序,并使用MySQL在MySQL中返回两个日期之间的差值,MySQL应该这样做,还是应该让PHP来处理?
我还需要我得到的所有结果的总和,我是否应该返回它们并在php端将它们相加,或者是否有一种方法可以在MySQL服务器端将所有结果相加?
发布于 2009-05-14 14:56:22
这在一定程度上取决于应用程序,但一般来说,我会将其推送到PHP,因为通常情况下,您正在构建一个用于多个并发访问的web站点;为什么要将计算放到数据库中,并且可能会有瓶颈?
发布于 2009-05-14 16:33:43
我想你这里有两个不同的案例。在返回两个值并对其执行计算的情况下,只要不是需要大量业务逻辑的复杂计算,那么在前端进行计算可能是最有意义的。如果它确实涉及复杂或专门的业务逻辑,那么您应该为该逻辑提供一个中心位置,无论它是在业务层中还是在数据库中,以便它能够一致地完成。如果你只是想找出两个日期之间的不同之处,那就直接在前端做吧。
在第二种情况下,您正在求和值,这听起来像是应该在数据库中完成的事情。在今天的硬件上,网络往往比现代数据库更成为瓶颈。如果您可以在数据库中添加它们,那么就不必通过网络发送一大堆行。
发布于 2009-05-14 15:01:03
对于这个问题,没有好的答案。我个人尽可能多地使用SQL,但主要是因为我可以,而不是因为我应该这样做。
是的,您可以让MySQL计算一个和:
SELECT id, SUM(price) FROM items GROUP BY id WITH ROLLUP最后一个结果,即id等于NULL的结果,将包含所有行的sum。
https://stackoverflow.com/questions/863790
复制相似问题