タグ

ブックマーク / sh2.hatenablog.jp (1)

  • MySQL InnoDBのネクストキーロック おさらい - SH2の日記

    MySQLのInnoDBストレージエンジンは行ロックをサポートしています。しかしOracleと同じ感覚でアプリケーションを作っていると、思わぬところでデッドロックに出くわすことがあります。これはInnoDBのロック範囲がOracleよりも微妙に広いためです。 実際の例で確認してみましょう。 mysql> select * from t; +----+------+ | c1 | c2 | +----+------+ | 10 | a | | 15 | a | | 20 | a | | 25 | a | | 30 | a | | 35 | a | | 40 | a | | 45 | a | | 50 | a | +----+------+c1列は主キーになっています。1つめのセッションで以下のSQLを実行します。 mysql> set tx_isolation = 'repeatable-r

    MySQL InnoDBのネクストキーロック おさらい - SH2の日記
    srkzhr
    srkzhr 2009/08/27
    "ファジーリードを防ぐ仕組みをどのように実装するかはRDBMSによって異なるのですが、InnoDBでは最初からINSERTやUPDATEをさせないという方針になっています。INSERTも止めてしまうので、ファントムリードも発生しない"
  • 1