こちらのエントリを見て思い出しました。 アプリケーションエンジニアが知っておくべきMySQLのロック MySQL(InnoDB)のデフォルトトランザクション分離レベルは表題の通りREPEATABLE READですが、その場合でも、UPDATEとDELETEはREAD COMMITTED相当の動作になります。 実験 以下のようなアプリケーションがあったとします。 入会申請の都度、テーブルにレコードがINSERTされる。 受付処理を行うときに、当該レコードをUPDATEして処理済みにする。 ※説明を簡単にするために、入会申請(entry)テーブルには、通し番号(entry_no)・名前(name)・処理フラグ(proc_flag)の3つのカラムしか持たないものとします。 処理前に、こんな感じでレコードが入っているとします。 mysql> SELECT * FROM iso_level_test