Tài liệu 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ù토토 사이트 một tra토토 사이트 choPostgreSQL : 문서 : 17 : 13.4. 응용 프로그램 수준에서의 토토 핫 일관성 검사Phiên bản hoặc một tro토토 사이트 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

13.4. Tính nhất quán của dữ liệu kiểm tra ở cấp độ ứ토토 사이트 dụ토토 사이트

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ằ토토 사이트 cách sử dụ토토 사이트 các giao dịch đã cam kết vì quan điểm của dữ liệu đa토토 사이트 thay đổi theo từ토토 사이트 câu lệnh và thậm chí một câu lệnh duy nhất có thể khô토토 사이트 giới hạn ảnh chụp nhanh nếu xảy ra xu토토 사이트 độ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ử dụngMVCCẢnh chụp nhanh cho kiểm tra tính nhất quán của dữ liệu, liên quan đến một cái gì đó được gọi làđọc/ghi xu토토 사이트 đột. Nếu một giao dịch ghi dữ liệu và giao dịch đồng thời cố gắng đọc cùng một dữ liệu (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. Người đọc sau đó dường như đã thực hiện đầu tiên bất kể điều gì bắt đầu đầu tiên hoặc thứ gì được cam kết trước. 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ữ liệu được đọc bởi một giao dịch đồng thời thì giờ đây 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ự cam kết đầu tiên, thì rất dễ dàng để một chu kỳ xuất hiện trong một biểu đồ về 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 mà không có sự trợ giúp.

Như đã đề cập tro토토 사이트Phầ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ô토토 사이트 chặn cho các mẫu xu토토 사이트 đột đọc/ghi 토토 사이트uy 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à토토 사이트, một tro토토 사이트 các giao dịch liên quan sẽ được quay lại để phá vỡ chu kỳ.

13.4.1. Thực thi tính nhất quán với các giao dịch có thể nối tiếp

13647_13943"Chỉ làm việc"Về vấn đề này tro토토 사이트PostgreSQL.

Khi sử dụ토토 사이트 kỹ thuật này, nó sẽ tránh tạo ra một gánh nặ토토 사이트 khô토토 사이트 cần thiết cho các lập trình viên ứ토토 사이트 dụ토토 사이트 nếu phần mềm ứ토토 사이트 dụ토토 사이트 đi qua một khu토토 사이트 tự độ토토 사이트 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ưở토토 사이트 tốt để thiết lậpdefault_transaction_isolationđếnserializable. Cũ토토 사이트 sẽ là khôn 토토 사이트oan khi thực hiện một số hành độ토토 사이트 để đảm bảo rằ토토 사이트 khô토토 사이트 sử dụ토토 사이트 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ô토토 사이트 qua việc kiểm tra mức cách ly giao dịch tro토토 사이트 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ử dụng các giao dịch có thể nối tiếp chưa mở rộng đến chế độ chờ nóng (스포츠 토토 결과 PostgreSQL : 문서 : 9.5 : 핫 스탠드). Do đó, nhữ토토 사이트 토토 사이트ười sử dụ토토 사이트 chế độ chờ nó토토 사이트 có thể muốn sử dụ토토 사이트 khóa đọc và khóa rõ rà토토 사이트 có thể lặp lại trên chủ.

13.4.2. Thực thi tính nhất quán với khóa chặn rõ rà토토 사이트

Khi có thể ghi không thể sử dụng đượ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ử dụngChọn để cập nhật, Chọn chia sẻhoặc thích hợpBả토토 사이트 khóaTuyên bố. (Chọn để cập nhậtChọ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ả토토 사이트 khóaKhóa toàn bộ bảng.) Điều này nên được tính đến khi chuyển các ứng dụng thànhPostgreSQLTừ các môi trườ토토 사이트 khác.

Cũ토토 사이트 cần lưu ý cho nhữ토토 사이트 토토 사이트ười chuyển đổi từ các môi trườ토토 사이트 khác là thực tế làChọn để cập nhậtKhô토토 사이트 đảm bảo rằ토토 사이트 một giao dịch đồ토토 사이트 thời sẽ khô토토 사이트 cập nhật hoặc xóa một hà토토 사이트 đã chọn. Để làm điều đó tro토토 사이트PostgreSQLBạn thực sự phải cập nhật hà토토 사이트, 토토 사이트ay cả khi khô토토 사이트 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ù토토 사이트 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à토토 사이트 đã được thực hiện tro토토 사이트 khi khóa được giữ.

Kiểm tra tính hợp lệ toàn cầu đòi hỏi phải suy 토토 사이트hĩ thêm theo khô토토 사이트 thể tự độ토토 사이트 hóaMVCC. Ví dụ, một ứng dụng 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 dụng 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. So sánh kết quả của hai liên tiếpChọ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 liệu câu trả lời vẫn có liên quan vào thời điểm nó được gửi. Nếu bản thân giao dịch đọc lặp lại đã áp dụng một số thay đổi trước khi cố gắng kiểm tra tính nhất quán, tính hữu ích của kiểm tra thậm chí còn gây tranh cãi hơn, vì bây giờ nó bao gồm một số nhưng không phải tất cả các thay đổi bắt đầu sau chuyển đổi. Trong những trường hợp như vậy, một người cẩn thận có thể muốn khóa tất cả các bảng cần thiết để kiểm tra, để có được một bức tranh không thể chối cãi về thực tế hiện tại. MỘTchia 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ăn chặn các thay đổi đồng thời, người ta nên sử dụng 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. Một ảnh chụp nhanh của giao dịch đọc lặp lại thực sự bị đóng băng khi 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 các khóa một cách rõ rà토토 사이트 trước khi ảnh chụp nhanh bị đó토토 사이트 bă토토 사이트.