PostgreSQL: kèo chấp bóng đá hôm nay liệu: | |||
---|---|---|---|
prev | UP | Chương 13. kèo bóng đá euro soát đồng thời | Tiếp theo |
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 đá euro các giao dịch đã cam kết 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 xảy ra 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 đá euroMVCCẢnh chụp nhanh cho kiểm tra tính nhất quán của dữ kèo bóng đá euro, 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 đá euro và giao dịch đồng thời cố gắng đọc cùng một dữ kèo bóng đá euro (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ỳ.
13647_13943"Chỉ làm việc"Về vấn đề này trongPostgreSQL.
Khi sử kèo bóng đá euro 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 đá euro nếu phần mềm ứng kèo bóng đá euro đi qua một khung tự động lấy 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 đá euro 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.
Cảnh báo |
Mức độ bảo vệ toàn vẹn này bằng cách sử kèo bóng đá euro các giao dịch có thể nối tiếp chưa mở rộng đến chế độ chờ nóng (Phần 25.5). Do đó, những người sử kèo bóng đá euro chế độ chờ nóng có thể muốn sử kèo bóng đá euro 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 đá euro đượ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 đá euroChọn để cập nhật, Chọn chia sẻhoặc thích hợpBảng khóaTuyên bố. (Chọn để cập nhậtvà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óaKhó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 đá euro 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 đả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 có được cùng một khóa hoặc thực hiện mộtCập nhậthoặcXóasẽ ả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ậtcủa hàng đã được thực hiện trong khi khóa được giữ.
Kiểm tra kèo bóng đá euro 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 đá euro 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 đá euro 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 đá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 đá euro câu trả lời vẫn có liên quan vào thời điểm nó được gửi.chia sẻMode (hoặc cao hơn) Khóa đảm bảo rằng không có thay đổi nào trong bảng bị khóa, ngoài những thay đổi của 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 đá euro 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ậthoặ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.