我正在努力大幅减少我正在构建的应用程序的昂贵的数据库查询,并认为我应该只返回子集合的ID(然后从我的React状态中找到相关对象),而不是返回孩子们自己。
我想我问,如果我使用'pluck'来返回子ID,那么它比一般'get'更有效,或者我会浪费我的时间吗?
答案 0 :(得分:0)
是的,如果您尝试从表中检索单个列, pluck 方法就可以了。
如果您使用 get()方法,它将检索有关子模型的所有信息,这可能会导致查询和获取结果的过程变慢。
所以在我看来,你正在使用很好的方法来检索结果。
Laravel还有不同的选择查询方法。在这里,您可以查看Selects。
答案 1 :(得分:0)
在应用程序中执行数据库选择查询的良好做法是选择必要的列。如果需要id
列,则应选择id
列,而不是所有列。否则,它将花费不必要的内存来保存未使用的数据。如果您的想法清楚,pluck
和get
是相同的:
Model::pluck('id')
// which is the same as
Model::select('id')->get()->pluck('id');
// which is the same as
Model::get(['id'])->pluck('id');