1. 抽出するフィールドを明示的に指定 — select メソッド
select メソッドはデータベースクエリで特定のフィールドのみを選択的にロードする際に使用します。
- SQLの
SELECT節と類似しており、必要なデータのみメモリにロードしてパフォーマンスを最適化可能です。
使用方法及び例示コード
User.select(:name, :email)
User.select(:name, :age).where("age >= 30")
利用すると良い点
- パフォーマンス最適化: 全テーブルの全カラムをロードする代わりに必要なフィールドのみメモリにロードするため、アプリケーションの性能向上が可能です。
- ネットワークトラフィックの減少: 不要なデータ転送を減らしネットワークトラフィックを最小化します。
2. 重複しないレコードの抽出 — distinct メソッド
distinct メソッドは重複したレコードなしで結果を返したい時に使用します。
- SQLの
DISTINCTキーワードと同じ機能を提供します。
使用方法及び例示コード
User.select(:name).distinct
User.select(:name).where(active: true).distinct
利用すると良い点
- データの重複削除: 特定フィールドの重複を除去して、データの正確性と処理速度を高めることができます。
- 統計及びレポート作成の容易さ: ユニークな値のみが必要な統計やレポートを作成する際に便利です。
3. 指定範囲のレコードのみを抽出 — limit と offset メソッド
limit と offset メソッドはページネーションの実装時に役立ちます。
limit は返すレコード数を制限します。
offset はどこからレコードを返すかの開始点を指定します。
使用方法及び例示コード
User.limit(5)
User.offset(5).limit(5)
利用すると良い点
- ページネーション: 大量のデータがあるテーブルでユーザーにデータをページ単位で提供可能です。
- リソース管理: サーバーおよびクライアント側のリソースを効率的に管理し、一度に過多なデータをロードすることを防止します。