【问题标题】:Which is better practice? Single query to SQL + Complex function OR Multiple queries, each serving a simple function [closed]哪个是更好的做法?对 SQL + 复杂函数的单个查询或多个查询,每个查询都提供一个简单的函数 [关闭]
【发布时间】:2020-01-02 13:26:22
【问题描述】:

在我存储用户可以购买一个或多个项目的会话的应用程序中,我试图跟踪每个项目的销售状态并为卖家汇总它们(在数量和美元价值方面)

卖方仪表板示例

*SESSION 1 (Revenues: $w, Pending receipts $x)*

ITEM A: SOLD 2, AWAITING PAYMENT 1

ITEM B: SOLD 1, AWAITING PAYMENT 0

*SESSION 2 (Revenues: $y, Pending receipts $z)*

ITEM A: SOLD 4, AWAITING PAYMENT 0

ITEM C: SOLD 0, AWAITING PAYMENT 0

我可以想出两种方法来实现这一点。

  1. 我做了一个相对简单的查询,但结果可能意味着我有一个复杂的函数在返回之前处理该查询的结果。
  2. 我提出了许多具体的查询,但我可以将函数分解成更小的部分,可能将来可重复用于应用程序的其他部分。

原则上,我所读到的内容似乎表明 (2) 是更好的编码实践。但是,我还读到 PHP 中的处理比多个 SQL 查询的开销要轻得多,因此我提出了问题。

【问题讨论】:

  • 您是否尝试过在 SQL 中编写查询来执行此操作。不知道它有多复杂,看起来应该很容易做到。
  • 嗨,奈杰尔,我正在做这件事。实际上我在描述中犯了一个错误并已更正它。我的问题更多的是,是做一个简单的通用查询并使用 PHP 对结果进行排序(这意味着一个复杂的函数)还是做几个特定的​​查询并保持我的 PHP 函数简单。

标签: php sql laravel


【解决方案1】:

为了考虑哪种解决方案更好,我们应该首先列出每种方法的优缺点。

单条SQL查询+复杂的PHP处理

优势

  • SQL 更易于维护
  • 如果需求发生变化,数据库结构不会受到太大影响
  • 无需数据库交互即可编写测试,从而加快速度

缺点

  • PHP 更难维护
  • 一般而言,SQL 在处理数据方面的性能比 PHP 好
  • 由于性能更差,在较大的数据集上表现不佳

多个 SQL 查询 + 更简单的 PHP 处理

优势

  • PHP 更易于维护
  • 一般而言,SQL 在处理数据方面的性能比 PHP 好
  • 由于更好​​的性能也更好地处理更大的数据集

缺点

  • SQL 更难维护
  • 如果需求发生变化,数据库结构也可能会受到影响
  • 测试可能必须与数据库进行交互,这会使它们变慢

结论

这一切可能归结为你的情况:

  • 您要处理的数据集有多大?
  • 性能有多重要?
  • 测试(性能)如何导入?
  • 要求多久更改一次?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 2016-09-19
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    相关资源
    最近更新 更多