gpt4 book ai didi

zend-framework - 最小化 Zend 中的查询数量

转载 作者:行者123 更新时间:2023-11-29 14:58:05 28 4
gpt4 key购买 nike

我想知道两种算法之间哪个更好

从 table1.id = table2.table1_id 上的 tabel1 内连接 table2 中选择 table1.*;

然后提取或

从表2中选择*;

然后使用 foreach 循环

从table1中选择*,其中table1.id = table2.table1_id

*请告诉我一个合理的理由

现在我正在使用 zend,我相信第一个比第二个更快更好(我不知道为什么......只是一些先入之见)

在 zend db profiler 中,每次我得到查询:DESCRIBE menu_items时间:0.00084590911865234

有没有办法最小化它?

请告诉我如何使用 zend 组件在 zend 中连接两个表

问候,

最佳答案

由于查询响应时间原因,使用内连接比 php 循环更快。在第一个查询中,您将只执行一个查询,而在第二个查询中,您将执行多个查询。数据库已准备好检索数据,这意味着比通过不同的查询手动使用 php 连接表要快得多。

要加入 zend,您需要这个(假设您在 Zend_Db_Table 上):

$select = $this->select()->setIntegrityCheck(false);
$select->from(array('t1'=>'table1'))
->join(array('t2'=>'table2'),'t2.table1_id =t1.id','*')
->where('t1.deleted =?',0)
->group('t1.id')
->order('t1.date DESC')
->limit(4);
$result = $this->fetchAll($select);

为了防止 DESCRIBE 查询,您可以对表结构进行硬编码或对其进行缓存。检查这里:

http://framework.zend.com/manual/en/performance.database.html

关于zend-framework - 最小化 Zend 中的查询数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022770/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com