手工查询与 findDependentRowset

2023-12-03

我已经用 Zend 构建了一个相当大的应用程序,我想知道哪个更好,手动构建查询(使用 Zend 对象模型)

$db->select()
   ->form('table')
   ->join('table2',
          'table.id = table2.table_id')

或与findDependentRowset方法 (findDependentRowSet 的 Zend 文档).

我想知道因为我做了一个测试来获取多个表中的数据并显示表中的所有信息和findDependentRowset似乎跑得更慢了。我可能是错的,但我想它每次都会产生一个新查询findDependentRowset被称为:

$table1 = new Model_Table1;
$rowset = $table1-fetchAll();
foreach($rowset as $row){
    $table2data = $row->findDependentRowset('Model_Table2', 'Map');

    echo $row['field'] . ' ' . $table2data['field'];
}

那么,哪一个更好,有没有一种方法可以使用findDependentRowset构建可以跨越 5 个表的复杂查询,其运行速度与手工查询一样快?

Thanks


一般来说,构建自己的查询是最好的方法,因为 zend 将只创建一个对象(或一组对象)并只执行一个查询。

如果您使用 findDependentRowset Zend 将执行另一个查询并使用每次调用的结果构建另一个对象(或集)。

您应该只在非常特殊的情况下使用它。

看这个问题:PHP - 每次迭代查询单个值或在开始时获取所有值并从数组中检索?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手工查询与 findDependentRowset 的相关文章

随机推荐

  • 如何使用 C++11 枚举类作为标志

    假设我有一堂课 enum class Flags char FLAG 1 1 FLAG 2 2 FLAG 3 4 FLAG 4 8 现在我可以有一个具有类型标志的变量并分配一个值吗7例如 我可以这样做吗 Flags f Flags FLAG
  • AJAX 呼叫在 Phonegap 中无法工作,但工作正常

    我正在使用开放天气地图 api web 服务进行 ajax 调用 以便使用纬度和经度获取当前天气 问题是相同的调用在我的正常 php 文件夹中工作 但在我的 phongap 应用程序中不起作用 我的ajax调用如下图 ajax type G
  • Hibernate 限制中“等于 id”限制的大小写敏感

    我尝试做一个区分大小写的等于username与 Hibernate 3 6 9 一起使用 但似乎限制不区分大小写 例如 AdMin 或 admin 都有效 但只有 admin 应该正确 否则 size 应该返回 0 我会尽量避免使用like
  • 使类可编码

    我有一个协议 即 Codable 和一个类 即 Codable public protocol SourceListItem AnyObject Codable var name String get set var children So
  • 如何将事件侦听器添加到 HTML5 视频海报图像加载事件

    是否可以 我想将一个事件侦听器附加到 HTML5 视频元素上的海报图像 以便在加载并显示海报图像后运行代码 我正在尝试找出一种方法来做到这一点 但我需要帮助 像这样 var poster video prop poster if poste
  • 将现有 EC2 实例导出到 CloudFormation json/yaml

    Problem 我有一个EC2实例正在运行 我对实例做了一些修改 安装了 docker 设置证书目录等 现在 我想创建相同的实例 但使用基础设施作为代码主体 我没有记住我所做的所有添加并手动创建模板 而是尝试找到一种方法将当前的 EC2 实
  • 检查数据库是否存在并在 SQLite IOS 中删除数据库

    我目前正在使用phonegap 来创建ios 应用程序 在熟悉 sql javascript 交互的同时 我似乎已经创建了同名数据库文件的 10 个版本 我目前正在使用以下创建代码 来自phonegap wiki var mydb fals
  • Promise 回调按什么顺序触发?

    假设以下语句已按此顺序执行 promiseA then function console log A1 promiseB then function console log B promiseA then function console
  • 获取BehaviorSubject的值

    我正在尝试获取BehaviorSubject 的值 返回值 但我如何利用它们在 return true false 语句中使用它们 BehaviorSubject isScalar false observers Array 0 close
  • 在 php 中运行多个查询

    我对 PHP 和 HTML 真的很陌生 按提交按钮后 我尝试使用 Users MySQL 表中已有的数据填充字段 这有效 我还想将通过 SELECT 获得的相同数据插入到另一个名为 scan 的 SQL 表中
  • 为什么 HTML 中 标签没有关闭?

    出于好奇 为什么 img gt 标签未关闭于HTML img src smiley gif alt Smiley face height 42 width 42 我还注意到 img gt 标签明确地封闭在XHTML img src smil
  • 如何正确解析算术表达式中的数字,区分正数和负数?

    我在数据结构类中有一个作业 其中我必须编写一个计算器 用 4 个基本运算和括号来求解算术表达式 输入是通过 stdin 缓冲区完成的 输出也是如此 一开始很简单 老师给我们提供了算法 如何将表达式从中缀转换为后缀以及如何对其求值 唯一的目标
  • 如何在 J.T.Sage DateBox 中禁用已选择的下一个日期框的日期

    我的应用程序使用 jt sage DateBox 我想禁用已选择的下一个日期框字段的日期选择器例如 我的 Date1 就像 2014 年 8 月 13 日 我的其他日期框字段需要在 2014 年 8 月 13 日之后选择 注意 取决于之前的
  • 使用 BeautifulSoup 查找包含特定文本的 HTML 标签

    我正在尝试获取 HTML 文档中包含以下文本模式的元素 S 11 h2 this is cool 12345678901 h2 因此 前面的内容将通过使用以下方式进行匹配 soup h2 text re compile r S 11 结果会
  • Dictionary.cs 中的 FindEntry 函数

    我一直在研究 NET 字典的实现 因为我想了解是什么使字典 ContainsKey 和查找速度更快 http referencesource microsoft com mscorlib system collections generic
  • 添加新的 MDI 子窗口时如何避免屏幕弹跳

    在我的 MDI 框架中 我正在创建 MDI 子窗口 如下所示 Form frm new frmMyChild frm MdiParent this frm WindowState FormWindowState Maximized frm
  • 用于渲染丰富网页内容的移动设备检测

    迄今为止最具网络功能的手机是什么 型号和 或用户代理 以及 当试图确定它们是否能够处理丰富的移动定制网站时 应该评估哪些规则 我正在开发一个移动网站 目前正在进行一些用户代理检测 以确定移动设备是否应该看到完全增强的 js jquery m
  • 屏幕上鼠标位置周围区域的缩放框[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 有关您编写的代码的问题必须描述具体问题 and 包含有效代码重现它 在问题本身中 看SSCCE org以获得指导 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决
  • Python:旧式(或经典)和新式对象的方法解析顺序

    我读过很多关于 Python 文档中的对象的内容 它们在某些方面区分了这两者 例如 旧式实例与其类无关 是使用称为实例的单个内置类型来实现的 新样式类既不大于也不小于用户定义的类型 有人可以向我解释更多吗 旧式 或经典 和新式 我不明白这句
  • 手工查询与 findDependentRowset

    我已经用 Zend 构建了一个相当大的应用程序 我想知道哪个更好 手动构建查询 使用 Zend 对象模型 db gt select gt form table gt join table2 table id table2 table id