Database Theory: Khóa lạc quan và Khóa bi quan là gì?

2022-03-20 16:05:43

Khóa bi quan:

Đây là loại khóa tiêu chuẩn giống như khóa dành riêng hoặc khóa dùng chung. Người đọc bị chặn bởi người viết và người viết bị chặn bởi người đọc.

SQL Server Isolation levels like Read Committed, Repeatable Read, Serializable are mostly doing Khóa bi quan.

It locks the transaction whenever something is going wrong and it puts the transaction into the blocking queue.
Khóa bi quan cho phép bạn truy cập dữ liệu trực tiếp và được cam kết, không có cơ hội truy cập dữ liệu bẩn.

The big OLTP system like banking system or finance system are always preferred to use Khóa bi quan because data accuracy is required for both reader and writer.

Có, khóa là một chi phí bổ sung trong một hệ thống lớn, nhưng một số loại ứng dụng cần có độ chính xác.

Khóa lạc quan:

Nó còn được gọi là lập phiên bản hàng và không bao giờ chặn bất kỳ giao dịch nào.

The MVCC architecture is most popular now a day and it depends on Khóa lạc quan concept.
RDBMS như PostgreSQL và MySQL InnoDB hoàn toàn dựa trên MVCC.
Microsoft SQL Server has also Snapshot Isolation which is one type of Khóa lạc quan.

Người đọc không bao giờ chặn người viết và người viết không bao giờ chặn người đọc.

Bên trong, nó đang quản lý các phiên bản hàng khác nhau, vì vậy nếu người đọc đang đọc một phiên bản dữ liệu và đồng thời người viết cũng có thể cập nhật cùng một dữ liệu bằng cách tạo một phiên bản mới của dữ liệu đó, lần tới, người đọc có thể đọc phiên bản mới của dữ liệu và phiên bản cũ của dữ liệu được đánh dấu là bộ chết.

Có 70% cơ hội nhận được phiên bản dữ liệu cam kết cuối cùng trong khi truy cập dữ liệu bằng khóa Lạc quan, nhưng nó cho phép truy cập nhanh vì không bao giờ tạo ra sự phụ thuộc giữa các giao dịch.

Nói chung, hầu hết các ứng dụng web và di động đều ổn với phiên bản dữ liệu được cam kết cuối cùng.

Xem thêm:


Chia sẻ: