Railsでオブジェクトを検索する場合、クエリ条件を組み合わせてからクエリを実行するか、より厳密でない条件から始めて、結果に対して配列操作を実行して目的を絞り込むのが良いでしょうか。どちらがより速く、および/または標準的な使用を実行するかを知りたいです。
質問する
147 次
1 に答える
1
可能であれば、SQLでの結果の絞り込みは一般的に高速であるため、クエリがそれほど複雑でない場合は、必要な数のクエリ条件を追加します。Rubyでコードを実行して結果を絞り込むことは、Rubyがとにかく解釈されるため、SQLよりも高速ではありません。
ただし、SQLを使用して結果を絞り込むと、次の利点があります。
- インデックスが作成された列にクエリ条件がある場合(たとえば、created_byのインデックスを追加し、特定の時間枠内に作成された結果を検索する)、またはその列にsort句がある場合は、はるかに高速なインデックスを介して結果を検索します
- SQLデータベースからRuby/Railsへの通信が少なくなります(同じコンピューター上にある場合、速度がわずかに向上します。それ以外の場合、データベースが別のコンピューター上にある場合、使用する帯域幅が少なくなり、結果がより速く返されます)
于 2012-08-17T00:42:17.987 に答える