こんにちは。freee請求書エンジニアのshunです。 24卒未経験でfreeeに入社し、freee請求書プロダクトの開発を行っています。 この記事では、先日行ったAPIのスロークエリの改善について紹介します。 APIのエンドポイントで発生していた約5分のスロークエリを、原因調査からMySQLオプティマイザの挙動の読み解きまで行い、20秒まで短縮しました。 「SQL単体では正しそうなのに実行計画が壊れる」「オプティマイザが期待と違うインデックスを選んでしまう」というのは、地味ですがよく遭遇するテーマだと思います。最近はMCP経由でAIエージェントがAPIを叩くようにもなってきており、APIのパフォーマンスはこれまで以上に重要になっています。 なお、以降で登場するテーブル名・カラム名・SQLに出てくる日付や事業所IDなどの値は、記事のわかりやすさを優先して例示用の汎用的なものに置き換えていま

