Rozważmy następujące zapytanie wykonany w PostgreSQL (9.1 lub 9.2):Czy modyfikacja wartości współbieżnych może wpłynąć na wybór w PostgreSQL 9.1?
SELECT * FROM foo WHERE bar = true
Załóżmy, że jest to dość długo działa zapytania (na przykład biorąc minutę).
Jeśli na początku zapytania istnieje 5 milionów rekordów, dla których bar = true
ładowni, a podczas tego zapytania w innej transakcji nie są wiersze dodawane i usuwane w tabeli foo
, a dla niektórych istniejących wierszy aktualizacje są wykonane z bar
pole.
Czy to wpłynie na wynik powyższego zapytania?
Wiem o izolacji transakcji i widoczności między oddzielnymi oświadczeniami w pojedynczej transakcji, ale co z pojedynczą instrukcją, która działa?