Dirty read là gì?
Phrase
Database
- ★
- ★
- ★
- ★
- ★
Việc đọc dữ liệu được ghi bởi một giao dịch (transaction) không được commit được gọi là dirty read.
Việc đọc này được gọi là dirty read bởi vì:
- Luôn có khả năng giao dịch không được commit có thể roll back sau đó.
- Do đó, giao dịch không được commit có thể làm cho các giao dịch khác đọc một giá trị thậm chí không tồn tại.
- Điều này dẫn đến sự không nhất quán của cơ sở dữ liệu.
Hãy xem xét ví dụ sau:
- T1 đọc giá trị của A.
- T1 cập nhật giá trị của A trong buffer.
- T2 đọc giá trị của A từ buffer.
- T2 ghi giá trị cập nhật của A.
- T2 commit.
- T1 lỗi trong các giai đoạn sau và roll back.
Trong ví dụ này
- T2 đọc giá trị dirty của A được ghi bởi giao dịch không commit T1.
- T1 lỗi trong các giai đoạn sau và roll back.
- Do đó, giá trị mà T2 đọc được là không chính xác.
- Do đó, cơ sở dữ liệu trở nên không nhất quán.
Learning English Everyday