0

我以这种方式清理了我的一个控制器中的一些功能:

旧功能:

return $this->find()
    ->where(['id' => $id])
    ->first();

新的:

return $this->get($id);

哪个更快,或者哪个更受欢迎?

4

1 回答 1

2

在性能方面应该几乎没有区别,只需查看源代码和/或简单地测试它。在1000迭代中,我可以看到0.0001几秒钟的差异,这无需担心。

一旦主键和别名被“缓存”(默认情况下应该在表类被实例化时发生,在烘焙时分别被初始化) ,构建查询所需的额外处理应该是绝对最小的。

那时,几乎唯一的区别应该get()是更短并且在找不到记录时抛出异常。

另见http://book.cakephp.org/3.0/en/orm/table-objects.html#loading-entities

于 2014-11-09T20:35:39.217 回答