1. ホーム
  2. ruby-on-rails

[解決済み】ActiveRecord:サイズとカウントの比較

2022-04-19 18:42:01

質問

Railsでは、レコードの数を調べるには、次の2つの方法を使用します。 Model.sizeModel.count . より複雑なクエリを扱う場合、どちらかの方法を使うことに利点があるのでしょうか?また、どのように違うのでしょうか?

例えば、写真を持っているユーザがいるとします。ユーザーとその写真の枚数の表を表示したい場合、「ユーザーを表示する」のインスタンスをたくさん実行すればよいのでしょうか? user.photos.size よりも速いか遅いか user.photos.count ?

ありがとうございます。

解決方法は?

をお読みください。 その まだ有効です。

ニーズに応じて使う機能を調整するのですね。

基本的には

  • すでにすべてのエントリを読み込んでいる場合、たとえば User.all を使用する必要があります。 length を使用すると、別のデータベースクエリを回避することができます。

  • 何も読み込んでいない場合は count データベースへのカウントクエリを作成します。

  • このような配慮が不要な場合は size を適応させます。