假设我在一个数组中有 50 个对象,并且每个对象都有属性cost
。此外,所有对象都在 MySQL 数据库中。
cost
循环遍历所有对象并添加它们的成员,或者进行诸如 之类的查询会更有效SELECT sum(cost) FROM ...
吗?
编辑:已经建立了一个 PDO 数据库对象。
取决于数组大小,您是否已经建立了数据库连接等。我一般会选择循环部分,因为它只有 50 个项目。但是最终的答案是您可以为自己做的基准..
SUM 查询。把手放下。如果它不比在应用程序代码中循环遍历数组更有效,那么您需要进行一些数据库调整。:)
一般来说,让 MySQL 为您做这件事要高效得多。但是,如果它真的只有50 个对象,那么其他因素(例如与数据库的网络连接)可能会发挥作用。但是,编写假设应用程序不会扩展的代码绝不是一个好主意。所以使用 MySQL :-)
求和查询。这将比你自己尝试更有效率。
无论如何,它们将足够相似以至于无关紧要,这意味着您会想要使用 sum,因为它有时很快,有时几乎相同。没有理由自己执行代码来冒险。
我在 php 中尝试了一个包含 74601 条记录的表,发现 sql SUM 查询比在 php 中循环快大约 10 倍