タグ

ブックマーク / bbs.zeem.com (1)

  • MySQL/レコードロック - PukiWiki

    SELECT ... FOR UPDATE を使う方法 † SELECT文の末尾にFOR UPDATEをつけることで、選択対照となる行のみをロックします。この方法は他のデータベースでもサポートしているものが多い互換性の高いものです。 また、MySQLのInnoDBストレージエンジンでは、ロックエスカレーション(行レベルロックが多発した際に、ページロック、テーブルロックなどに粒度が上がってしまう現象)は発生しない実装となっています。 一方、デメリットとしては下記の点があります。 トランザクションの中でのみ利用可能です。つまり、トランザクションをサポートしたストレージエンジンによるテーブルでなければなりません。 既に該当の行にロックがかかっている状態で、同じ行に対してSELECT ... FOR UPDATEを実行すると、後発の処理は先発のロックが解放されるか、タイムアウトするまで待ち続けるこ

    ryster
    ryster 2010/11/11
  • 1