Php 如何提高条令性能(普通sql快4倍)?

Php 如何提高条令性能(普通sql快4倍)?,php,doctrine,Php,Doctrine,接下来的问题是-我想执行简单查询(例如,一个表中有10行) 在理论上,此操作需要0.013752秒 以下是DQL: $q = Doctrine_Query::create() ->update('TABLE') ->set('FIELD', 1) ->where('ID = ?', $id); $rows = $q->execute(); 但是当我使用纯sql和mysql\u query()时,只需要0.003298秒 怎么了?条令真的慢了4倍吗

接下来的问题是-我想执行简单查询(例如,一个表中有10行)

在理论上,此操作需要0.013752秒

以下是DQL:

$q = Doctrine_Query::create()
    ->update('TABLE')
    ->set('FIELD', 1)
    ->where('ID = ?', $id);
$rows = $q->execute();
但是当我使用纯sql和
mysql\u query()
时,只需要0.003298秒

怎么了?条令真的慢了4倍吗?

约翰

没什么不对的。与直接SQL查询相比,条令引入了相当大的开销。但是,您获得了一个良好的面向对象数据库接口的便利性以及许多其他好处。如果原始性能非常重要,那么您可能不想使用原则。
对于需要性能而不是方便性的查询(例如,成千上万的插入),我使用PDO来避免ORM带来的开销。

+1:为了方便而牺牲性能。然而,在我所看到的测试案例中,理论的可伸缩性相当好。仅仅因为它在这里慢了四倍,并不能使它在任何地方都慢了四倍(事实上,它在更大的数据集中加快了很多速度)。性能比不是线性的。请注意,这也不是条令或任何ORM本身的“问题”——增加更多的便利性和抽象层总是要付出一定的性能代价;试着用Symfony和普通PHP做一个“helloworld”!这就是说,通过适当的缓存和索引优化等,你可以减轻惩罚——正如这里的另一位评论者所说,性能比不是线性的。还要注意的是,条令2将获得显著的加速(我读到它比条令1快20%),所以我得到的是,这个“问题”是无法解决的?实际上,我有一个使用ajax加载的程序。在普通PHP中,通过Symfony2不需要超过40毫秒,甚至需要超过12秒!!!巨大的差异我想你可以做很多事情来加快你的网站速度,包括使用几个缓存层。再说一次,如果你写的东西很小,没有理由使用Doctrine+Symfony,但是在一个复杂的系统上,你可以节省大量的时间和头痛。请不要在我身边使用“佩林”这个词。