Layerx Mysql Performance Tuning Coding Agent
Coding AgentとはじめるMySQLパフォーマンスチューニング
- URL: https://tech.layerx.co.jp/entry/2026/06/09/165530
- 日付: 2026-06-09
- Tier: Tier 3
- 要旨: LayerX のエンジニアリングマネージャーによるスロークエリ改善の実録。データ量・分布変化で実行計画が崩れた複数テーブル JOIN クエリを、Coding Agent と協働で EXPLAIN / EXPLAIN ANALYZE しながら修正し、ベストケースで 50 倍以上の高速化を達成。
詳細
発端
- 内部 SLO モニタリングで主要エンドポイントの応答時間が基準違反
- 原因: データ量・分布の変化により意図したインデックスが選択されなくなった
EXPLAIN / EXPLAIN ANALYZE で発見した問題
- JOIN 起点がメインテーブルになり、数万件を 1 行ずつ評価していた → クエリを分割して 2 回発行する設計に変更
- 以前の
NOT IN + サブクエリフィルタが大きな集合スキャンを生む実行計画に変化していた →カラム NOT IN (...)の直接評価に書き換え(Coding Agent の EXPLAIN 分析による指摘で発見)
Coding Agent との役割分担
- Agent が担ったこと: EXPLAIN 結果の分析・複数改善案の提示・検証・実装
- 人間が担ったこと: 採用/却下の判断(メンテナンス性・改善効果の費用対効果)、過去経緯などコードに現れないコンテキストの補完、ハルシネーションへのツッコミ
使用ツール
- GORM で発行クエリを可視化するための
gormgolden(同僚製)でアプリコードと実 SQL の Before/After を確認
成果
- 対象クエリ群のほぼ全てで改善達成、ベストケースで 50 倍以上の高速化
今後の展望
- SLO 違反を検知 → EXPLAIN で原因特定 → 修正・検証 の Skill 化を検討中