"45分→20秒" フレームワークの「恩恵」と「制約」を見極めたバッチ処理の高速化 by umekikazuya

PHPカンファレンス小田原2026
採択
2026/04/11 14:45〜
あじ
レギュラーセッション

"45分→20秒" フレームワークの「恩恵」と「制約」を見極めたバッチ処理の高速化

kazuya_um_k_ umekikazuya kazuya_um_k_
2

約4万件の日次データ同期に45分を要していた処理を、インフラ増強なしで20秒に短縮した事例です。
課題は、10年運用を見据えた保守性の維持(Drupalというフレームワーク依存)と、ボトルネックとなる「N+1」「S3逐次読み込み」の解消の両立でした。
私はフレームワークを「乗りこなす」でもなく「捨てる」でもなく、「使い所」を鋭く選定する戦略を取りました。

  1. 分離: 複雑な永続化はフレームワークに任せ、重い計算・探索処理のみ「素のPHP配列」で行い計算量をO(n)へ圧縮。
  2. 構造: Entityをメモリに乗せず、検索用ハッシュマップを構築しメモリ効率を最大化。

「全部フレームワーク」か「全部オレオレ」かの二元論ではない、運用コストとパフォーマンスのバランスを最適化する技術選定の判断基準をお話します。