Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该在模型中使用一个大型sql查询,还是将其分解为较小的查询?_Php_Sql_Codeigniter_Join - Fatal编程技术网

Php 我应该在模型中使用一个大型sql查询,还是将其分解为较小的查询?

Php 我应该在模型中使用一个大型sql查询,还是将其分解为较小的查询?,php,sql,codeigniter,join,Php,Sql,Codeigniter,Join,我正在为我的一个项目使用codeigniter,现在我有一个包含项目信息的表,我在一个特定视图中显示所有项目 现在,我还希望同一个视图显示有关项目的其他相关信息,例如视图的数量以及关联的标记。但是这将需要模型中的多个连接(这将需要我修改现有的查询…),但是它将使视图不必直接调用模型 如果我简单地分解查询,并有两个与视图中的其他信息相关的单独查询,会获得更好的性能吗?我发现这一点更清楚,但我想知道它是否更慢,因为我在循环中调用每个项目的模型 为什么不使用 那你就百分之百肯定了。此外,如果结果“接近

我正在为我的一个项目使用codeigniter,现在我有一个包含项目信息的表,我在一个特定视图中显示所有项目

现在,我还希望同一个视图显示有关项目的其他相关信息,例如视图的数量以及关联的标记。但是这将需要模型中的多个连接(这将需要我修改现有的查询…),但是它将使视图不必直接调用模型


如果我简单地分解查询,并有两个与视图中的其他信息相关的单独查询,会获得更好的性能吗?我发现这一点更清楚,但我想知道它是否更慢,因为我在循环中调用每个项目的模型

为什么不使用

那你就百分之百肯定了。此外,如果结果“接近”,您可以选择更适合您的编程逻辑的选项


p、 您还可以将对模型的多个调用循环到控制器中的一个数组(如$projects)中,并将该变量传递给视图,因此在任何一种情况下,“视图”都不会直接调用“模型”。

一般来说,尽量避免在循环中查询或从视图调用模型。直觉告诉我们,最好只使用一个查询,让数据库处理连接。如果没有其他问题,这将节省应用程序和数据库之间的多个查询开销。然而,也许CodeIgniter有一些特定的特性,使它成为一个更糟糕的选择。我决定使用更大的查询-我只是创建了视图来最小化sql的复杂性。谢谢各位。