1

簡単な質問ですが、答えが見つからないようです...次のステートメントを考えると:

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

Laravel によると、これは JOIN を使用する代わりに 2 つの SQL ステートメントを生成するようです。すべてのPHPフレームワークでこのようなものですか? レールはどうですか?

4

1 に答える 1

1

Laravel は追加の SELECT ステートメントを使用して関連モデルを取得します。プロファイラーをオンにすると、これらを確認できます。JOIN よりも効率的であると考えられているという発言を見たことがありますが、その理由/理由を説明できる賢い人がいると確信しています。

大量の関連データを (つまりループで) 取得している場合は、Laravel の Eager Loading 機能を使用してクエリを最小限に抑えることを検討する必要があります。

于 2013-01-07T09:05:42.407 に答える