【问题标题】:Do Laravel or Rails MYSQL Queries from ORM use JOIN Statements来自 ORM 的 Laravel 或 Rails MYSQL 查询是否使用 JOIN 语句
【发布时间】:2012-12-20 23:42:08
【问题描述】:

简单的问题,但我似乎找不到答案... 鉴于以下陈述:

$phone = User::find(1)->phone()->first();

根据 Laravel 的说法,这似乎会生成两个 SQL 语句,而不是使用 JOIN。在所有 PHP 框架中都是这样吗?铁轨呢?

【问题讨论】:

    标签: ruby-on-rails orm laravel eloquent


    【解决方案1】:

    Laravel 确实使用额外的 SELECT 语句来获取相关模型,如果你打开 Profiler,你可以看到这些。我看到评论说它被认为比 JOIN 更有效,但我相信有更聪明的人可以解释为什么/为什么不。

    我知道,如果您要获取大量相关数据(即在循环中),您应该考虑使用 Laravel 的 Eager Loading 功能来最小化查询。

    【讨论】:

    • 我非常想知道多个 SELECT 语句如何比 JOIN 更有效(因为我一直认为这是 SQL 数据库的要点之一?)我不太喜欢写作/reading JOIN statements 不过,所以我完全赞成他们的灭亡。
    • 阅读我的回答stackoverflow.com/questions/14130338/…,它解决了我为什么这比加入更好的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多