🐈

Hoge.distinct.pluck(:fuga).size とかするなよって話

2021/09/06に公開
$ Hoge.distinct.pluck(:fuga).size
SELECT DISTINCT fuga FROM HOGE;

の実行結果から生成されるArrayに対してArray#sizeが走る。

実際にはこうして欲しい

$ Hoge.distinct.select(:fuga).count
SELECT COUNT(DISTINCT fuga) FROM HOGE;

SQL内で処理が完結するので高速になる。

Discussion