0

3人のユーザーがいるとしましょう[User name="A"], [User name="B"], [User name="C"]

違いはありますか(存在を確認するため):

if User.where(name: "A").first

User.all.map(&:name).include? "A"

ありがとうございました。

4

1 に答える 1

5

を使用whereすると、SQLを介して名前に一致するユーザーのみが取得されます。

マッピングはすべてのユーザーをロードし、名前の配列を作成し、「A」をチェックします。

少数のユーザーの場合、パフォーマンスの違いはごくわずかですが、特定の時点以降、メモリと時間の両方に大きな影響whereがあり、はるかに優れています。DBで作業を行うことは、すべてのデータを単純に取得してRubyで行うよりも優れたオプションになります。

于 2012-08-22T14:41:48.780 に答える