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)
利用すると良い点
- ページネーション: 大量のデータがあるテーブルでユーザーにデータをページ単位で提供可能です。
- リソース管理: サーバーおよびクライアント側のリソースを効率的に管理し、一度に過多なデータをロードすることを防止します。