Laravel的“采摘”方法比一般的'get'便宜吗?

时间:2018-03-22 05:40:20

标签: laravel eloquent laravel-eloquent

我正在努力大幅减少我正在构建的应用程序的昂贵的数据库查询,并认为我应该只返回子集合的ID(然后从我的React状态中找到相关对象),而不是返回孩子们自己。

我想我问,如果我使用'pluck'来返回子ID,那么它比一般'get'更有效,或者我会浪费我的时间吗?

2 个答案:

答案 0 :(得分:0)

是的,如果您尝试从表中检索单个列, pluck 方法就可以了。

如果您使用 get()方法,它将检索有关子模型的所有信息,这可能会导致查询和获取结果的过程变慢。

所以在我看来,你正在使用很好的方法来检索结果。

Laravel还有不同的选择查询方法。在这里,您可以查看Selects

答案 1 :(得分:0)

在应用程序中执行数据库选择查询的良好做法是选择必要的列。如果需要id列,则应选择id列,而不是所有列。否则,它将花费不必要的内存来保存未使用的数据。如果您的想法清楚,pluckget是相同的:

Model::pluck('id')

// which is the same as

Model::select('id')->get()->pluck('id');

// which is the same as

Model::get(['id'])->pluck('id');