Rất khó để thực thi các quy tắc kinh doanh liên quan đến tính toàn vẹn dữ liệu bằng cách sử kèo bóng đá hôm nay và ngày mai các giao dịch đã được đọc vì quan điểm của dữ liệu đang thay đổi theo từng câu lệnh và thậm chí một câu lệnh duy nhất có thể không giới hạn ảnh chụp nhanh nếu xung đột ghi.
Trong khi giao dịch đọc lặp lại có cái nhìn ổn định về dữ liệu trong suốt quá trình thực hiện của nó, có một vấn đề tinh tế khi sử kèo bóng đá hôm nay và ngày maiMVCCẢnh chụp nhanh cho kiểm tra tính nhất quán của dữ kèo bóng đá hôm nay và ngày mai, liên quan đến một cái gì đó được gọi làĐọc/ghi xung đột. Nếu một giao dịch ghi dữ kèo bóng đá hôm nay và ngày mai và giao dịch đồng thời cố gắng đọc cùng một dữ kèo bóng đá hôm nay và ngày mai (dù trước hoặc sau khi ghi), nó không thể thấy công việc của giao dịch khác.
Như đã đề cập trongPhần 13.2.3, Các giao dịch có thể nối tiếp chỉ là các giao dịch đọc lặp lại để thêm giám sát không chặn cho các mẫu xung đột đọc/ghi nguy hiểm. Khi một mẫu được phát hiện có thể gây ra một chu kỳ theo thứ tự thực thi rõ ràng, một trong các giao dịch liên quan sẽ được quay lại để phá vỡ chu kỳ.
Nếu mức cách ly giao dịch có thể nối tiếp được sử kèo bóng đá hôm nay và ngày mai cho tất cả các ghi và cho tất cả các lần đọc cần một cái nhìn nhất quán về dữ liệu, không cần nỗ lực nào khác để đảm bảo tính nhất quán. Phần mềm từ các môi trường khác được viết để sử kèo bóng đá hôm nay và ngày mai các giao dịch có thể nối tiếp để đảm bảo tính nhất quán nênChỉ làm việcHồiVề vấn đề này trongPostgreSQL.
Khi sử kèo bóng đá hôm nay và ngày mai kỹ thuật này, nó sẽ tránh tạo ra một gánh nặng không cần thiết cho các lập trình viên ứng kèo bóng đá hôm nay và ngày mai nếu phần mềm ứng kèo bóng đá hôm nay và ngày mai đi qua một khung tự động nhằm thử lại các giao dịch được thực hiện lại với lỗi tuần tự hóa. Nó có thể là một ý tưởng tốt để thiết lậpdefault_transaction_isolation
đếnserializable
. Cũng sẽ là khôn ngoan khi thực hiện một số hành động để đảm bảo rằng không sử kèo bóng đá hôm nay và ngày mai mức độ phân lập giao dịch nào khác, vô tình hoặc để lật đổ kiểm tra tính toàn vẹn, thông qua việc kiểm tra mức cách ly giao dịch trong các kích hoạt.
xemPhần 13.2.3Đối với đề xuất hiệu suất.
Mức độ bảo vệ toàn vẹn này bằng cách sử kèo bóng đá hôm nay và ngày mai các giao dịch có thể nối tiếp chưa mở rộng đến chế độ chờ nóng (Phần 26.5). Do đó, những người sử kèo bóng đá hôm nay và ngày mai chế độ chờ nóng có thể muốn sử kèo bóng đá hôm nay và ngày mai khóa đọc và khóa rõ ràng có thể lặp lại trên chủ.
Khi có thể ghi không thể sử kèo bóng đá hôm nay và ngày mai được, để đảm bảo tính hợp lệ hiện tại của một hàng và bảo vệ nó chống lại các bản cập nhật đồng thời người ta phải sử kèo bóng đá hôm nay và ngày maiChọn để cập nhật
, Chọn để chia sẻ
hoặc thích hợpBảng khóa
Tuyên bố. (Chọn để cập nhật
vàChọn chia sẻ
Khóa chỉ các hàng được trả về so với các bản cập nhật đồng thời, trong khiBảng khóa
Khóa toàn bộ bảng.) Điều này nên được tính đến khi chuyển các ứng kèo bóng đá hôm nay và ngày mai thànhPostgreSQLTừ các môi trường khác.
Cũng cần lưu ý cho những người chuyển đổi từ các môi trường khác là thực tế làChọn để cập nhật
Không đảm bảo rằng một giao dịch đồng thời sẽ không cập nhật hoặc xóa một hàng đã chọn. Để làm điều đó trongPostgreSQLBạn thực sự phải cập nhật hàng, ngay cả khi không cần thay đổi giá trị.Chọn để cập nhật
khối tạm thờiCác giao dịch khác từ việc có được cùng một khóa hoặc thực hiện mộtCập nhật
hoặcXóa
sẽ ảnh hưởng đến hàng bị khóa, nhưng một khi giao dịch giữ khóa này cam kết hoặc quay lại, một giao dịch bị chặn sẽ tiến hành hoạt động mâu thuẫn trừ khi thực tếCập nhật
kèo bóng đá hôm nay và ngày mai hàng đã được thực hiện trong khi khóa được giữ.
kèo bóng đá hôm nay và ngày mai tra tính hợp lệ toàn cầu đòi hỏi phải suy nghĩ thêm theo không thể tự động hóaMVCC. Ví dụ, một ứng kèo bóng đá hôm nay và ngày mai ngân hàng có thể muốn kiểm tra xem tổng của tất cả các khoản tín kèo bóng đá hôm nay và ngày mai trong một bảng bằng tổng số các khoản ghi nợ trong một bảng khác, khi cả hai bảng đang được cập nhật tích cực.Chọn Sum (...)
Các lệnh sẽ không hoạt động một cách đáng tin cậy trong chế độ đã cam kết đọc, vì truy vấn thứ hai có thể sẽ bao gồm kết quả của các giao dịch không được tính bởi đầu tiên. Thực hiện hai khoản tiền trong một giao dịch đọc lặp lại sẽ đưa ra một bức tranh chính xác chỉ về các tác động của các giao dịch đã thực hiện trước khi giao dịch đọc lặp lại bắt đầu - nhưng người ta có thể tự hỏi một cách hợp pháp kèo bóng đá hôm nay và ngày mai câu trả lời vẫn có liên quan vào thời điểm nó được gửi.chia sẻ
Khóa chế độ (hoặc cao hơn) đảm bảo rằng không có thay đổi nào trong bảng bị khóa, ngoài những thay đổi kèo bóng đá hôm nay và ngày mai giao dịch hiện tại.
Lưu ý rằng nếu một người đang dựa vào khóa rõ ràng để ngăn chặn các thay đổi đồng thời, người ta nên sử kèo bóng đá hôm nay và ngày mai chế độ đọc cam kết hoặc trong chế độ đọc lặp lại hãy cẩn thận để có được khóa trước khi thực hiện truy vấn. Một khóa thu được từ một giao dịch đọc lặp lại đảm bảo rằng không có giao dịch nào khác sửa đổi bảng vẫn đang chạy, nhưng nếu ảnh chụp nhanh được thấy trước giao dịch có được khóa, nó có thể có một số thay đổi hiện có trong bảng.Chọn
, Chèn
, Cập nhật
hoặcXóa
), vì vậy có thể có được các khóa một cách rõ ràng trước khi ảnh chụp nhanh bị đóng băng.