代码之家  ›  专栏  ›  技术社区  ›  Thomaschaaf

MySQL应该做多少计算?

  •  3
  • Thomaschaaf  · 技术社区  · 15 年前

    我正在编写一个应用程序,并使用mysql返回mysql中两个日期之间的差异,我应该让mysql这样做还是让php来处理?

    我还需要返回的所有结果的总和。我应该返回这些结果并将它们添加到PHP端,还是有方法将所有结果添加到MySQL服务器端?

    4 回复  |  直到 15 年前
        1
  •  4
  •   Charlie Martin    15 年前

    它在某种程度上取决于应用程序,但一般来说,我会将它推到PHP中,因为通常情况下,您要为多个并发访问构建一个网站;为什么要将计算放在数据库中,并可能有瓶颈?

        2
  •  1
  •   Tom H    15 年前

    我想你们这里有两个单独的箱子。在返回两个值并对其执行计算的情况下,那么在前端执行该操作可能最有意义,只要它不是需要重要业务逻辑的复杂计算。如果它确实涉及复杂的或专门化的业务逻辑,那么无论是在业务层中还是在数据库中,您都应该有一个该逻辑的中心位置,以便能够始终如一地完成它。如果你只是想找出两个日期或是什么的区别,那就在最前面做。

    在第二种情况下,当您要求和值时,这听起来像是应该在数据库中做的事情。在当今的硬件上,网络往往比现代数据库更是一个瓶颈。保存通过网络发送的一堆行,如果您可以在数据库中添加它们的话。

        3
  •  0
  •   vava    15 年前

    没有好的答案。我个人尽可能多地使用SQL,但主要是因为我可以,而不是因为我应该。

    是的,你可以让MySQL计算一个和:

    SELECT id, SUM(price) FROM items GROUP BY id WITH ROLLUP
    

    最后一个结果ID为空的结果将包含所有行的和。

        4
  •  0
  •   user107113    15 年前

    如果是成千上万个不同的数字,我会在数据库端尝试。查理说的和平常差不多。我经常在数据库中进行计算,并将它们作为附加列添加,以备需要进行服务器端排序时使用,但这显然不是您的情况。