0

我有两张桌子Question,并且Option有一对多的关系。从两个表中获取结果后,结果数组应该是这样的

Question = array( //问题表的结果

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

);

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

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

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

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

4

3 回答 3

2

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

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

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

于 2012-11-17T09:32:48.183 回答
0

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

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

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

于 2012-11-17T09:34:01.297 回答