Laravel 今さらpluck() + toArray()の便利さを知った

私だけかもしれませんが、今まではまずDBから対象レコードを抽出して、それからデータを加工していましたが
foreach()でデータを整形するより、pluck() + toArray()の方が速度もメモリ使用量も約2倍パフォーマンスが良いという結果となり、ソース可読性も良いので今後はpluck() + toArray()を採用しようと思いました。

特にRAG時のベクトル計算のような大量の配列と配列を計算する場合には有効だと思う。
(そもそもベクトルや行列計算をphpでするな!!というのは置いておいて。。。いずれ計算部分はChromaDB + pythonにします)

foreach()の場合

        $articles = Article::get();

        $datas = [];

        foreach($articles as $article){
            $datas[] = $article->evaluation;
        }
dd($datas);

toArray()の場合

        $datas = DB::table('articles')->select(['evaluation'])->pluck('evaluation')->toArray();
dd($datas);

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です