我正在编写一个应用程序并使用MySQL来返回MySQL中2个日期之间的区别,如果MySQL这样做或者我应该让PHP实际处理它吗?
我还需要我得到的所有结果的总和,如果我将它们返回并在php端添加它们或者有没有办法将所有结果一起添加到MySQL服务器端?
答案 0 :(得分:4)
这在某种程度上取决于应用程序,但总的来说,我会将它推送到PHP,因为通常你正在为多个并发访问构建一个网站;为什么把计算放入数据库并且可能有瓶颈?
答案 1 :(得分:1)
我认为你在这里有两个不同的案例。在您返回两个值并对它们执行计算的情况下,只要不是需要重要业务逻辑的复杂计算,那么在前端执行此操作可能是最有意义的。如果它涉及复杂或专业的业务逻辑,那么您应该拥有该逻辑的中心位置,无论是在业务层还是在数据库中,以便始终如一地完成。如果您只是找到两个日期之间的差异,那么就在前端进行。
在第二种情况下,你在对值进行求和,这听起来像是应该在数据库中完成的事情。在今天的硬件上,网络往往比现代数据库更加瓶颈。保存在网络上发送一堆行只是为了添加它们,如果你可以在数据库中进行添加。
答案 2 :(得分:0)
对此没有好的答案。我个人尽可能在SQL中做,但主要是因为我可以,而不是因为我应该。
是的,您可以要求MySQL计算总和:
SELECT id, SUM(price) FROM items GROUP BY id WITH ROLLUP
最后一个结果,即id等于NULL的结果,将包含所有行的总和。
答案 3 :(得分:0)
如果有数千个不同的数字,我会尝试在数据库端进行。查理所说的几乎是平常的。我经常在数据库中进行计算,并将它们作为附加列添加,以防我需要进行服务器端排序,但显然不是你的情况。