Php Zend中缓慢的postgresql查询

Php Zend中缓慢的postgresql查询,php,postgresql,zend-framework,Php,Postgresql,Zend Framework,我正在使用Zend 1.12和postgresql数据库。 我还使用Zend\u Db\u Table\u Abstract接口访问我的数据库 我的代码(简化): 然后我就这样使用它: $db = new Application_Model_DbTable_Images(); $img = $db->getImage(10); 问题是这个电话太长了。在我的pgAdmin中,这个查询大约需要10-20ms,但在PHP中,这个查询需要300-500ms。我使用了XDebug,遵循了调用堆栈,

我正在使用
Zend 1.12
postgresql
数据库。 我还使用
Zend\u Db\u Table\u Abstract
接口访问我的数据库

我的代码(简化):

然后我就这样使用它:

$db = new Application_Model_DbTable_Images();
$img = $db->getImage(10);

问题是这个电话太长了。在我的pgAdmin中,这个查询大约需要10-20ms,但在PHP中,这个查询需要300-500ms。我使用了XDebug,遵循了调用堆栈,了解到占用大部分时间(超过90%)的函数是
php::PDO->\uuu-construct
。如何缩短查询持续时间?

使用探查器检查此处调用的确切查询。我的猜测是Zend_Db在每个真正的查询之前都有一个
descripe table
one,单独一个查询可能需要500毫秒。我将在括号中列出调用的内容及其执行时间:Application_Model_DbTable_Images->getImage,Zend_Db_Adapter_Abstract->select(407ms),Zend_Db_table_select->构造(402ms),Zend_Db_Table_Select->setTable(402ms)、Zend_Db_Table_Abstract->info(402ms)、Zend_Db_Table_Abstract->setupPrimaryKey(402ms)、Zend_Db_Table_Abstract->setupMetadata(401ms)、Zend_Db_Adapter_Pdo Pgsql->可描述(400ms)、Zend_Db_Adapter_Abstract->quote(389ms)、Zend_Db_Adapter_Pdo PGU连接(388ms)、Zend_连接(388mu)适配器,php::Pdo->uu构造(388ms)有一个“可描述”调用。如何使其更快?@raina77现在我知道我需要将其称为:Zend_Db_Table_Abstract::setDefaultMetadataCache在我的代码中的某个地方,但在哪里以及如何?检查,它描述了几种可能的解决方案,以防止那些
描述
查询。如果选择缓存,我想所有必需的步骤都应该放在
Bootstrap
文件中,如中所示。
$db = new Application_Model_DbTable_Images();
$img = $db->getImage(10);