【发布时间】:2018-03-14 18:07:10
【问题描述】:
以下是从订单表中检索所有订单行的查询
$orders = auth()->user()->orders;
或
$orders = Order::where('user_id',auth()->id())->get();
或
$orders = \DB::table('orders')->where('user_id',Auth::id())->get();
如果订购表 100 000 行,那么上述哪种方法最适合使用?
【问题讨论】:
-
前两个应该(在我看来)在幕后执行基本相同的事情。第三个将跳过将结果转换为 Eloquent 模型,这将稍微提高性能,但也会降低
$orders结果的可用性。我会使用 #1,因为它是最干净的代码,除非您先进行了一百个更好的优化,否则您很可能不需要仔细优化它。 -
好的,谢谢
-
@Abhilash.k.p 你是在模型还是控制器中写这个查询
-
在控制器@karthik
标签: laravel performance laravel-5.5 php-7.1 memory-efficient