Betrachten Sie die folgende Abfrage in PostgreSQL ausgeführt 9.1 (oder 9.2):Kann die gleichzeitige Wertänderung Auswirkungen auf einzelne Auswahl in PostgreSQL 9.1 haben?
SELECT * FROM foo WHERE bar = true
Angenommen, es ist eine ziemlich lange Lauf Abfrage ist (zum Beispiel eine Minute nehmen).
Wenn zu Beginn der Abfrage gibt es 5 Millionen Datensätze, für die bar = true
hält, und während dieser Abfrage in einer anderen Transaktion gibt es Zeilen hinzugefügt und in der foo
Tabelle entfernt, und für einige vorhandenen Zeilen werden Aktualisierungen der bar
gemacht Feld.
Wirkt sich dies auf das Ergebnis der oben gezeigten Auswahlabfrage aus?
Ich weiß über Transaktionsisolation und Sichtbarkeit zwischen einzelnen Anweisungen in einer einzelnen Transaktion, aber was ist mit einer einzelnen Anweisung, die ausgeführt wird?