哪个更好的解雇SQL查询或处理PHP中的结果?

时间:2012-11-17 09:31:09

标签: php mysql

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

  

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

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

);

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

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

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

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

join会更快,并且可以节省服务器上的负载,因此请加入(选项1)

答案 2 :(得分:0)

Offcourse Join更好,因为这样你只需要在UI上得到你想要的东西并且负载是平衡的。

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

请记住“基本”仅获取所需的那些信息。