MySQL5逆引き大全460の極意

データ操作命令(SELECT以外)の極意 - Tips116 反復不能読み込みとは

登録タグ
SQL
Icon comment count 0
Icon stock count 0

5-4トランザクション/ロックTips116 反復不能読み込みとは

Level2

Pointあるトランザクションが複数回にわたって同一のデータを読み込んだ場合に、他のトランザクションによる変更によって読み込む値が異なってしまう状態です

反復不能読み込み(Non-Repeatable Read)とは、あるトランザクションの中で複数回にわたって同一のデータを読み込んだ場合に、他のトランザクションによる挿入/更新(コミット)によって読み込む値が異なってしまう状態のことを言います。

このような反復不能読み込みが発生するのは、分離レベルがREAD COMMITED以下に設定されている場合です。

用例1

用例1では、READ COMMITEDレベルで発生する反復不能読み込みの発生を確認しています。ユーザAの更新(確定)によって、ユーザBの1度目の読み込み結果と2度目の読み込み結果が異なってしまっていることが分かります。

反復不能読み込みを防ぐには、分離レベルとしてREPEATABLE READ以上を設定する必要があります。以下の用

出典情報

Medium

MySQL5逆引き大全460の極意

  • 著者: 山田 祥寛

コメント

    コメントはありません