タグ

transactionとmysqlに関するlamichのブックマーク (2)

  • MySQL ロックの話 | feedforce Engineers' blog

    ロックの基 ロックってなんだ データの整合性を保つために読み書きを一時的に制限する仕組み READロックとWRITEロック READロック 共有ロック 他のスレッドによるデータの読み込みは可能 他のスレッドによるデータ変更は不可 WRITEロック 排他ロック 他のスレッドによる読み込みも変更も不可 ロックキューと優先順位 ロック要求を出したときに対象がロック済みの場合はロックキューに要求を入れる WRITEロックキューとREADロックキューがあり、WRITEロックキューが優先的に処理される よってWRITEロックが続くとSELECTできない状態になる この優先順位はいろんな単位で変更可能 基的に更新をなるべく早く反映させるためにWRITEロックが優先される ロックレベル テーブルロック ISAM/MyISAM/HEAP テーブル単位のロック デッドロックフリー 大部分が読み込みの場合に

    MySQL ロックの話 | feedforce Engineers' blog
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.5 InnoDB のデッドロック

    デッドロックとは、それぞれが他の必要なロックを保持しているために、異なるトランザクションを続行できない状況です。 両方のトランザクションがリソースが使用可能になるのを待機しているため、保持しているロックは解放されません。 デッドロックは、(UPDATE や SELECT ... FOR UPDATE などのステートメントを使用して) 複数のテーブルの行をトランザクションがロックするときに発生する可能性がありますが、逆の順序で発生します。 デッドロックは、このようなステートメントがインデックスレコードとギャップの範囲をロックし、各トランザクションが一部のロックを取得するけれども、タイミングの問題によりほかを取得しない場合にも発生することがあります。 デッドロックの例については、セクション15.7.5.1「InnoDB デッドロックの例」 を参照してください。 デッドロックの可能性を減らすには

  • 1