API が遅いと言われたら、どこから調べますか

勘で直さず、いつから、どの API が、どの人にとって遅いのかを数字で絞り、1 つの要求の時間の内訳を見て遅い所を突き止める、と答える問い。DB、外のサービス、接続の待ちのどこで時間を使っているかの見分け方まで話します。

まず 4 択で考える

2 問

答えに入れるべき考えを選びます。選ぶと、すぐに正誤と解説が出ます。そのあと下の欄で、自分の言葉で答えてみます。

  1. 問 1「API が遅い」と言われて最初にすることとして、正しいものはどれか

  2. 問 2処理そのものは速いのに、始まるまでが遅いとき、疑う所として正しいものはどれか

2 問中 0 問に答えました

答えてみる

面接官に「API が遅いと言われたら、どこから調べますか」と聞かれたつもりで、答えを見る前に自分の言葉で、声に出して答えてみます。

解説を読む

聞かれ方から関連するコースまで、この問いの解説を全部ここに置いています。

こう聞かれます

  • 「API が遅いと言われたら、どこから調べますか」
  • 「昨日から一部の画面が重いと問い合わせが来ました。どう原因を探しますか」
  • 「とりあえずキャッシュを入れる、で良いですか」(裏から聞く形)

面接官が見ている点

  • 勘で直し始めず、まず数字で「どこが、いつから、誰にとって」遅いかを絞れるか
  • 平均ではなく、遅いほうの人の時間を見ているか
  • 1 つの要求の時間の内訳を見て、遅い所を突き止める手順を持っているか
  • 直したあと、本当に速くなったかを同じ物差しで確かめるか

短い答え

  • まず数字で絞ります。いつから、どの API が、平均ではなく遅いほうの人 (上から 5% や 1% の人) にとって、どれだけ遅いかを見ます。
  • 次に 1 つの要求の時間の内訳を見ます。DB の問い合わせ、外のサービスの呼び出し、接続や処理の順番の待ちのどこで時間を使っているかを、トレースやログで分けます。
  • 遅い所が分かってから直し、直したあとは同じ数字で速くなったかを確かめます。

この問いを含む分野をレッスンで練習する

レッスンを開く

少し詳しい答え

まず範囲を絞る

「遅い」は人によって意味が違います。最初に次のことを数字で確かめます。

  • いつから配備、データの増加、使う人の増加など、同じ時刻に変わった物が手がかりになります
  • どの API か全部が遅いなら共通の部分 (DB、ネットワーク、台数) を、一部だけなら、その処理を疑います
  • 誰にとってか平均ではなく、遅いほうの人の時間 (95 パーセンタイルや 99 パーセンタイル) を見ます。特定の利用者や、データの多い人だけ遅いこともあります

時間の内訳を見る

1 つの要求が、どこで何ミリ秒使ったかを分けて見ます。トレースがあれば、DB、外の API、自分の処理の時間が並んで見えます。無ければ、処理の前後で時間を測ってログに出します。

よく見つかる遅さの元は次の通りです。

  • DB の問い合わせ インデックスが効いていない、1 件ずつ問い合わせを繰り返している (N+1 問題) など。遅い問い合わせの記録と、実行計画 (EXPLAIN) で確かめます
  • 外のサービス決済や認証などの呼び出しが遅い。待つ時間の上限 (タイムアウト) が無いと、相手の遅さがそのまま自分の遅さになります
  • 待ち行列 DB の接続の取り合い (コネクションプールが足りない)、処理の順番待ち。処理そのものは速いのに、始まるまでが遅い形です

SQL クエリ

EXPLAIN SELECT * FROM orders WHERE user_id = 42 ORDER BY created_at DESC LIMIT 20;

実行計画で、表の全部を読んでいないか (全件の走査になっていないか) を見ます。

直す順番と確かめ

原因が分かってから直します。原因を知らないままキャッシュを入れると、遅さは隠れますが、キャッシュが切れた瞬間にまた遅くなり、古いデータを見せる問題も増えます。

直したら、同じ API の同じパーセンタイルで、前と後を比べます。速くなっていなければ、内訳の見立てが違ったということです。

話すときは、自分が調べた遅さで、何を見て、どこが原因で、何秒が何秒になったかの例を 1 つ用意します。話す例は架空の例で構いません。

よくある間違い

  • 平均の速さだけで「問題ない」と言う平均が速くても、遅いほうの人はとても待っていることがあります
  • 原因を知らずにキャッシュや台数を足す 遅さの元が残るので、また同じことが起きます。費用だけ増えることもあります
  • 手元の少ないデータで試して「速い」と言う本番のデータの量や偏りでしか出ない遅さがあります

深掘りの問い

  • 「トレースの仕組みが無い環境なら」入口と出口、DB と外の呼び出しの前後で時間をログに出し、同じ要求の番号でつなげて読む、と答えます
  • 「DB は速いのに API が遅いときは」接続を取るまでの待ち、外のサービス、大きな応答を組み立てる処理、を順に疑う、と答えます
  • 「遅さを先に見つけるには」遅いほうの人の時間に目標を置き、外れたら知らせる形にする、と答えます

確認日 2026年10月30日書き手 小尾 知希 (講師)

技術面接問題の一覧へ戻る