【问题标题】:should I use one large sql query in model or break it up into smaller queries?我应该在模型中使用一个大型 sql 查询还是将其分解为更小的查询?
【发布时间】:2012-05-30 03:57:14
【问题描述】:

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

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

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

【问题讨论】:

  • 一般来说,尽量避免循环查询或从视图调用模型。
  • 直觉说,最好只使用一个查询,让数据库处理连接。如果不出意外,这可以节省应用程序和数据库之间的多个查询开销。但是,也许代码点火器具有使其成为更糟糕选择的特定特征。
  • 我决定使用更大的查询——我只是创建了视图以最小化 sql 的复杂性。谢谢大家。

标签: php sql codeigniter join


【解决方案1】:

您为什么不同时编写代码 - 并使用 CI Profilier? 进行测试

那么您将 100% 确定。此外 - 如果结果“接近”,您可以选择更适合您的编程逻辑的选项。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2019-12-27
    • 2011-04-24
    • 1970-01-01
    相关资源
    最近更新 更多