Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài kèo bóng đá hôm nay và ngày mai này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

13.4. Kiểm tra tính nhất quán dữ liệu tại Cấp độ ứng kèo bóng đá hôm nay và ngày mai

Rất khó để thực thi các quy tắc kinh doanh liên quan đến dữ liệu tính toàn vẹn sử kèo bóng đá hôm nay và ngày mai các giao dịch đã cam kết đọc vì quan điểm của dữ liệu đang thay đổi theo từng câu và thậm chí một Tuyên bố có thể không tự giới hạn ảnh chụp nhanh của câu lệnh nếu Một cuộc xung đột ghi xảy ra.

Trong khi giao dịch đọc lặp lại có cái nhìn ổn định về dữ liệu trong 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 maiMVCC12298_12371Đọc/ghi xung đột. Nếu một giao dịch viết 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 hay sau khi viết), nó không thể thấy công việc của giao dịch khác. Người đọc sau đó dường như đã thực hiện Đầu tiên bất kể trong số đó bắt đầu đầu tiên hoặc cam kết đầu tiên. Nếu đó là xa như nó đi, không có vấn đề gì, nhưng nếu Người đọc cũng viết dữ kèo bóng đá hôm nay và ngày mai được đọc bởi một giao dịch đồng thời Bây giờ có một giao dịch dường như đã chạy trước một trong những giao dịch được đề cập trước đó. Nếu giao dịch dường như đã thực hiện cuối cùng thực sự đầu tiên, rất dễ dàng để một chu kỳ xuất hiện trong một biểu đồ của thứ tự thực hiện các giao dịch. Khi một chu kỳ như vậy xuất hiện, kiểm tra tính toàn vẹn sẽ không hoạt động chính xác nếu không có một số giúp đỡ.

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 trong đó thêm giám sát không chặn cho các mẫu nguy hiểm của Đọc/viết xung đột. 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 những Các giao dịch liên quan được quay lại để phá vỡ chu kỳ.

13.4.1. Thực thi kèo bóng đá hôm nay và ngày mai nhất quán với Giao dịch có thể nối tiếp

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 bài viết và cho tất cả các bài đọc cần một cái nhìn nhất quán về Dữ liệu, không cần nỗ lực 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ên"Chỉ làm việc"Về 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 thử lại các giao dịch được thực hiện lại với Thất bại tuần tự hóa. Nó có thể là một ý tưởng tốt để thiết lập14588_14619đếnserializable14668_14906

xemPhần 13.2.3Đối với đề xuất hiệu suất.

cảnh báo

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 vẫn chưa mở rộng đến nóng Chế độ chờ (Phần 25,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 bậc thầy.

13.4.2. Thực thi kèo bóng đá hôm nay và ngày mai nhất quán Với khóa chặn rõ ràng

Khi có thể ghi không thể tự động hóa, để đảm bảo Hiệu lực hiện tại của một hàng và bảo vệ nó chống lại sự đồng thời Cập nhật người ta phải sử kèo bóng đá hôm nay và ngày maiChọn cho CẬP NHẬT, Chọn chia sẻhoặc một phù hợpBảng khóaTuyên bố. (Chọn để cập nhậtChọn chia sẻKhóa chỉ các hàng được trả về chống lại các bản cập nhật đồng thời, trong khiKhóa BÀNKhóa toàn bộ bảng.) Điều này nên được đưa vào Tài khoả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ậtkhông 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ờiKhác Giao dịch có được cùng một khóa hoặc thực hiệnCập nhậthoặcXóasẽ ảnh hưởng đến hàng bị khóa, nhưng Sau 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 một thực tếCập nhậtcủa hàng là được thực hiện trong khi khóa được giữ.

Kiểm tra tính hợp lệ toàn cầu cần có thêm suy nghĩ theo không thể sử kèo bóng đá hôm nay và ngày mai đượcMVCC. Vì 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 Bảng, khi cả hai bảng đang được cập nhật tích cực. So sánh Kết quả của hai liên tiếpChọn Sum (...)17832_18710chia sẻ18738_18889

Lưu ý rằng nếu một người đang dựa vào khóa rõ ràng để Ngăn chặn những thay đổi đồng thời, người ta nên sử kèo bóng đá hôm nay và ngày mai đọc Chế độ 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 có được bởi một Giao dịch đọc lặp lại đảm bảo rằng không có ai khác Giao dịch sửa đổi bảng vẫn đang chạy, nhưng nếu Ảnh chụp nhanh được nhìn thấy bởi các định kỳ giao dịch có được khóa, Nó có thể có trước một số thay đổi đã cam kết trong bảng. MỘT Ảnh chụp nhanh được đọc có thể đọc được thực sự bị đóng băng tại bắt đầu lệnh truy vấn hoặc sửa đổi dữ liệu đầu tiên của nó (Chọn, Chèn, Cập nhậthoặcXóa), vì vậy có thể có được Khóa một cách rõ ràng trước khi ảnh chụp nhanh bị đóng băng.