【问题标题】:Which is better to fire SQL Query or to Process result in php?触发 SQL 查询或在 php 中处理结果哪个更好?
【发布时间】:2012-11-05 22:20:27
【问题描述】:

我有两个表 QuestionOption 有一对多的关系。从两个表中获取结果后,结果数组应该是这样的

问题 = 数组( //问题表的结果

   Option = array(
         //result from the Option Table
     ) 

);

假设如果我想从数据库中获取 10 个问题,那么我可以通过两种方式做到这一点(我认为)

  1. 通过连接两个表并从数据库中获取数据并使用它进行 PHP 循环和控制。(我更喜欢这个)

  2. 通过获取 Question 然后触发 10 查询 Option。 (这很容易,因为我们不需要像1的情况那样处理)

我想知道在 PHP 中处理结果或使用 SQL 查询哪个更好。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    join 会更快并节省服务器负载,所以加入(选项 1)

    【讨论】:

    • 是的,查询数据库是一项非常昂贵的操作
    【解决方案2】:

    Offcourse Join 更好,因为这样您只能在 UI 上获得所需的内容并且负载是平衡的。

    在第二个选项中,您所做的是从数据库中获取所有记录,然后根据您的需要处理它们,所以它太多了......

    记住 Basic 只获取那些需要的信息。

    【讨论】:

      【解决方案3】:

      通常,编写一个连接查询要好得多:

      • 您只需向数据库发出 1 个请求,而不是 11 个(一个用于问题,10 个用于选项)。数据库查询是一项非常昂贵的操作 - 每次进行查询时,都会向数据库发出网络请求。
      • 即使我们忽略网络往返时间的差异,数据库引擎也可以优化查询以可能运行得更快。
      • 与循环查询的 PHP 代码相比,一个连接查询更易于阅读、理解和修改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-01
        • 2019-03-26
        • 2011-11-24
        相关资源
        最近更新 更多