MySQL5逆引き大全460の極意

データ操作命令(SELECT以外)の極意 - Tips115 非コミット読み込みとは

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

5-4トランザクション/ロックTips115 非コミット読み込みとは

Level2

Point未コミットのデータを他のトランザクションから読み込めてしまう状態のことを言います

非コミット読み込み(Dirty Read)とは、他のトランザクションが挿入/更新したデータを「コミットしていない」状態で、別のトランザクションが読み込める状態のことを言います。

このような非コミット読み込みが発生するのは、分離レベルがREAD UNCOMMITTEDに設定されている場合のみです。READ UNCOMMITTEDレベルは、他のトランザクションからの読み込み操作をまったく制限しない、もっとも低い分離レベルです。言い換えれば、READ UNCOMMITEDレベルは、物理的に破損していないデータであることのみを保証するにすぎませんので、通常は利用すべきではありません。

用例1

用例1を見ると、READ UNCOMMITEDレベルでは、ユーザBからユーザAがまだ確定していないデータが見えてしまっていることが分かります。このようにコミットされていないデータが他のユーザに見えてしまうと、その後の操作によっては整合性が取れなくなってしまう可能性があ

出典情報

Medium

MySQL5逆引き大全460の極意

  • 著者: 山田 祥寛

コメント

    コメントはありません