Php Zend Framework选择where子句占位符会减慢进程

Php Zend Framework选择where子句占位符会减慢进程,php,zend-framework,placeholder,Php,Zend Framework,Placeholder,我正在使用Zend Framework 1.12.3,我注意到在where子句中使用“?”占位符会减慢过程: $query = $this->getDbTable()->select() ->from($this->getDbTable(), array('id')) ->where('id = ?', $id); 比以下速度慢得多: $query = $this->getDbTable()->select() ->fro

我正在使用Zend Framework 1.12.3,我注意到在where子句中使用“?”占位符会减慢过程:

$query = $this->getDbTable()->select()
    ->from($this->getDbTable(), array('id'))
    ->where('id = ?', $id);
比以下速度慢得多:

$query = $this->getDbTable()->select()
    ->from($this->getDbTable(), array('id'))
    ->where('id =' . $id);
以下是getDbTable和setDbTable方法,而$\u dbTable是受保护的属性:

public function setDbTable($dbTable)
{
    if (is_string($dbTable)) {
        $dbTable = new $dbTable();
    }
    if (!$dbTable instanceof Zend_Db_Table_Abstract) {
        throw new Exception('Invalid table data gateway provided');
    }
    $this->_dbTable = $dbTable;
    return $this;
}

public function getDbTable()
{
    if (null === $this->_dbTable) {
        $this->setDbTable('V1_Model_DbTable_Users');
    }
    return $this->_dbTable;
}
和V1_Model_DbTable_用户类:

class V1_Model_DbTable_Users extends Zend_Db_Table_Abstract
{
    protected $_name = 'users'; 
}

有人遇到过同样的问题吗?你有什么解决办法吗?谢谢你,除非你有这种行为,否则你不应该考虑一些缓慢的事情。在我看来,这似乎是一种观点。对于时差问题,您必须在它的架构级别上解决这个问题。 许多人花时间试图找到一个不存在的问题,这应该会改进您自己的代码


别那么认真。这是你应该认为是有建设性的。

请记住,你的第一个例子是使用这个特性来引用输入,因为第二个例子与在原始SQL中写一样。

你能定义“相当慢”吗?我花了一些时间研究,似乎不仅仅是使用“?”占位符速度较慢,但也使用find()方法。我已经基于此快速启动创建了一个新项目。在viewAction中调用find()方法时,总负载约为1.10秒。这是测试项目和数据库,我不认为这是因为我的代码,因为它也发生在一个裸项目上。有什么想法吗?我会看看这个项目。