しばらく作ってた機能をリリースしたらとんでもない勢いですべての API のレイテンシが50倍ぐらい悪化した。すぐロールバックしたので本番影響はほぼなかった(なくあってくれ)。原因はほぼ確定してて、新しく作ったクエリで DB を2万行ぐらいフルスキャンしてたということ、そして一番問題なのはこれが1秒に60回ぐらい呼び出される API だったってことなんだよな。とんでもない頻度でフルスキャンし続けることによっておそらく DB の実行環境で様々なことが起こり(ここの解像度上げたい)、それに引きずられてすべての読み取りが激遅になったのではないか。
うーん。本番環境ぐらいのデータ規模で本番環境ぐらいの頻度で事前にテストできてたら気づけてたんだろうな(ただリードレプリカとかはない)。とにかく QPS がヤバい API であることを念頭に置いて、実行計画をちゃんと読んでおくべきではあったし、ユーザのいない時間帯にこっそりクエリ走らせて負荷試験もするべきだったのか。というか、そもそも API の QPS 気にしてなかったのがまずいな。それが一番まずかったかもしれん。