【问题标题】:sortBy of collection and orderBy of Eloquent, which one is faster in Laravel [duplicate]Eloquent 的 collection 和 orderBy 的 sortBy,在 Laravel 中哪个更快 [重复]
【发布时间】:2018-05-22 20:25:25
【问题描述】:

我有一个users 表,并且我已经为它关联了User 模型。现在要从updated_at 排序的表中获取所有用户,我可以遵循以下两种方式:

1.使用 Eloquent(DB):假设是 MySQL

User::orderBy('updated_at')->get();

2。使用收集方法(PHP)

User::get()->sortBy('updated_at');

在这两种方式之间,哪一种更好/更快?为什么?

【问题讨论】:

  • 很大程度上依赖于索引
  • 这是否意味着如果我不做索引,那么 PHP 会执行得更快?
  • 不,我站在 Mathieu 一边,DB 几乎总是更快,但索引会让它变得与众不同
  • 所以,你是说有索引和没有索引的查询执行时间有很大的不同,我已经知道了。我的问题不是关于查询与查询,而是查询与 php。在那种情况下,您说 DB 几乎总是更快。为什么几乎总是而不是总是?有没有什么情况下php更快?此外,你能告诉我为什么 DB 几乎总是更快吗?
  • 因为它的真正构建和优化来做到这一点。 stackoverflow.com/questions/3619701/…

标签: php mysql laravel


【解决方案1】:

通常,使用数据库驱动程序比使用集合快得多,因为他的目的是获取和订购数据:)

Laravel Collection 只是类固醇上的数组,但使用数据库驱动程序,您甚至可以通过向列添加索引来提高性能。

【讨论】:

  • 我也这么认为。你提到的原因还不够清楚。收集也有包含和操作数据的目的。
猜你喜欢
  • 2018-05-12
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 2022-08-11
  • 2019-05-14
  • 2021-11-18
相关资源
最近更新 更多