コンテンツにスキップ
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 で発見した問題

  1. JOIN 起点がメインテーブルになり、数万件を 1 行ずつ評価していた → クエリを分割して 2 回発行する設計に変更
  2. 以前の NOT IN + サブクエリ フィルタが大きな集合スキャンを生む実行計画に変化していた → カラム NOT IN (...) の直接評価に書き換え(Coding Agent の EXPLAIN 分析による指摘で発見)

Coding Agent との役割分担

  • Agent が担ったこと: EXPLAIN 結果の分析・複数改善案の提示・検証・実装
  • 人間が担ったこと: 採用/却下の判断(メンテナンス性・改善効果の費用対効果)、過去経緯などコードに現れないコンテキストの補完、ハルシネーションへのツッコミ

使用ツール

  • GORM で発行クエリを可視化するための gormgolden(同僚製)でアプリコードと実 SQL の Before/After を確認

成果

  • 対象クエリ群のほぼ全てで改善達成、ベストケースで 50 倍以上の高速化

今後の展望

  • SLO 違反を検知 → EXPLAIN で原因特定 → 修正・検証 の Skill 化を検討中