
エンジニアの
コードを
出題の頻度は、国内の転職メディアと技術記事 (2026 年 10 月に調べました) に、分野ごとに調べた問い集のうち同じ問いが何本出ていたかで、よく
レベルの目安
- 未経験から
実務 2 年ほど - 一人で
機能を 作り切れる 3〜5 年ほど - 難しい
設計と 実装を 自分で 決めて作り切る - チームの
技術の 方針、 設計の 判断、 レビューと 育成、 事業との 折り合いを持つ
データベースと SQL
サービスを
止めずに DB の スキーマを 変えるには、 どうしますか 一度に
壊す変更を せず、 列を 足す、 新旧の 両方に 書く、 古い データを 移す、 読む先を 切り 替える、 古い列を 消す、と 段階を 分けて 進める、と 答える 問い。 どの 段階でも 戻せるように する 理由と、 手間との 引き換えまで 話します。 遅い
SQL を、 どう 調べて どう 直しますか 勘で
直さず、 まず 記録から 全体の 時間を 多く 食っている SQL を 見つけ、 EXPLAIN で 実行計画を 読み、 原因に 合った 手 (インデックス、 書き方、 取り方) を 選んで、 本番に 近い量で 測ってから 出す、と 答える 問い。 インデックスを 足す ことの 代償と、 出した 後の 確かめまで 話します。 読み込みが
増えて DB が 重いとき、 どんな 手を どの 順で 打ちますか まず
測って 重い 読み込みを 特定し、 SQL と インデックスを 直す、 接続の 数を 整える、 よく 読む物を 手前に 置く、 読み込み専用の 複製 (リードレプリカ) に 分ける、と 安くて 戻しやすい 手から 順に 打つ、と 答える 問い。 複製の 遅れで 「書いたのに 見えない」が 起きる ことへの 手当てと、 分割 (シャーディング) を 最後に 回す理由まで 話します。 本番の
大量の データを、 止めずに 書き換える (バックフィル) には、 どうしますか 1 回の
UPDATE で 全部を 書き換えず、 主キーの 範囲で 小さく 分けて 短い トランザクションで 流し、 どこまで 済んだかを 残して 途中から 再開でき、 何度流しても 同じ 結果に なる 形に する、と 答える 問い。 DB の 負担を 見ながら 速さを 絞る こと、 終わった 後の 照らし合わせ、 戻し方まで 話します。 デッドロックが
起きたら、 どう 調べて どう 防ぎますか DB の
記録から ぶつかった 2 つの トランザクションと、 それぞれが どの 順で 何を ロックしたかを 特定し、 ロックを 取る 順番を そろえる、 トランザクションを 短く する、と 答える 問い。 ゼロには できないので、 片方が 取り消された ときに トランザクションごと やり直す 作りまで 話します。 在庫や
座席の 取り合い (同時の 更新) を、 どう 防ぎますか アプリで
読んでから 調べて 書く 形を やめ、 条件付きの UPDATE で DB に 1 回で 判断させる、 行を ロックしてから 読む、 版の 番号で 後から 来た 書き込みを はじく、 一意の 制約で 二重の 確保を 止める、の どれかで 防ぐ、と 答える 問い。 取り合いの 激しさで 手を 選ぶ 理由まで 話します。 複数の
サービスや DB に またがる 処理の 整合性を、 どう 保ちますか 1 つの
トランザクションでは 囲めないと 認め、 手順に 分けて、 失敗したら 済んだ 手順を 打ち消す処理 (補償) で 戻す、 DB の 更新と 送る 知らせを 同じ トランザクションで 記録する (アウトボックス)、 受け取る 側を 何度届いても 困らない 形に する、と 答える 問い。 少しの 間ずれる ことを 事業側と 決め、 定期的な 照らし合わせで 拾う 所まで 話します。
コードを