0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Ruby]個人的によく混乱するmax, max_by, maximum の違いをまとめた。

Posted at

概要

タイトルの通りです。
利用機会は多いものの、混乱してしまうことが多いのでまとめることにしました。

maximum

  • 概要: ActiveRecordの集計メソッド
  • 機能: データベースレベルで最大値を取得
  • 内部動作: SQLのMAX関数を利用
  • メリット: データベース側で計算するため、パフォーマンスが高い

max

  • 概要: RubyのEnumerableモジュールのメソッド
  • 機能: コレクション内の最大値をRuby側(メモリ)で計算
  • 使用時の注意:
    • ActiveRecordのリレーションに対して使用すると、全てのレコードを一度に取得
    • データ量が多いとメモリ消費や処理時間が増大

max_by

  • 概要: RubyのEnumerableモジュールのメソッド
  • 機能: ブロック内で指定した基準に基づき、最大の要素を取得
  • 特徴:
    • 評価基準を直接指定でき、コードが明確
    • max同様、全レコードを取得してから処理(データ量が多いとメモリ消費や処理時間が増大)

まとめ

以上です。
基本的には maximumを利用するのが良いでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?