2010-11-18 16 views

答えて

1

いいえ、ロールバックするものはありません。あなたのコードは悪いデータを見て、おそらくそれに基づいて悪い決断をするでしょう、それだけです。

0

古いデータが表示されることがあります(2番目の読み取りでその行が更新された列でそのテーブルにある場合のみ)。あなたのデータを悪くするようなものから自分自身を救うために、楽観的なロックを使用してください。

2

私はコミットリードアイソレーションを理解していない限り(常に可能性があります)、コミットリードの全ポイントは、他のトランザクションによって変更された行がコミットされずに後でロールされたバック。したがって、Committed Readアイソレーションを使用するアプリケーションレベルでは、アプリケーションはファントムを見ることができません。

DBMSは内部でDBMSに依存します。 MVCCシステムでは、トランザクションはトランザクションが開始された時点でコミットされたバージョンを読み取るだけです。ロッキングシステムでは、他のトランザクションのロックを打つかもしれないし、あなた自身がスキップまたはブロックする可能性があります。しかし、AFAIKでは、DBMSは問題のためにトランザクションをロールバックしません。

+1

「変更が他のトランザクションによって変更されたが、変更がコミットされずにロールバックされた」行が実際にはファントムリードではなく、ダーティリードになります。http://en.wikipedia.org/wiki/Isolation_(database_systems) ) –

関連する問題