PostgreSQL 9.1(または9.2)で実行される次のクエリについて考えてみます。
SELECT * FROM foo WHERE bar = true
かなり長時間実行されるクエリだとします(たとえば、1分かかります)。
クエリの開始時に保持されるレコードが500万件ありbar = true
、別のトランザクションでのこのクエリ中にテーブルに追加および削除された行がfoo
あり、一部の既存の行についてはbar
フィールドが更新されます。
これは、上記の選択クエリの結果に影響しますか?
単一のトランザクション内の個別のステートメント間のトランザクション分離と可視性については知っていますが、実行中の単一のステートメントについてはどうでしょうか。