Hãy xem xét các truy vấn sau đây thực hiện trong PostgreSQL 9.1 (hoặc 9.2):Có thể sửa đổi giá trị đồng thời tác động đến lựa chọn duy nhất trong PostgreSQL 9.1 không?
SELECT * FROM foo WHERE bar = true
Giả sử đó là một truy vấn chạy khá dài (ví dụ tham gia một phút).
Nếu ở đầu truy vấn có 5 triệu bản ghi giữ bar = true
và trong truy vấn này trong giao dịch khác có hàng được thêm vào và xóa trong bảng foo
và đối với một số cập nhật hàng hiện tại được thực hiện cho bar
cánh đồng.
Liệu điều này có ảnh hưởng đến kết quả của truy vấn chọn được hiển thị ở trên không?
Tôi biết về cách ly giao dịch và khả năng hiển thị giữa các câu lệnh riêng lẻ trong một giao dịch duy nhất, nhưng điều gì về một câu lệnh đang chạy?