Bốn mức isolation trong SQL (chặt dần) và hiện tượng còn cho phép:
- Read Uncommitted: yếu nhất; cho dirty read (đọc dữ liệu chưa commit). PostgreSQL không thực sự có mức này — nó chạy như Read Committed.
- Read Committed (mặc định PostgreSQL): chỉ đọc dữ liệu đã commit; vẫn có non-repeatable read và phantom read.
- Repeatable Read (mặc định MySQL InnoDB): mỗi lần đọc cùng hàng cho cùng kết quả trong transaction; ngăn non-repeatable read (PostgreSQL còn ngăn cả phantom); còn serialization anomaly.
- Serializable: chặt nhất, kết quả như chạy tuần tự; ngăn mọi hiện tượng nhưng chi phí cao và có thể phải retry khi phát hiện xung đột.
Càng chặt càng ít bất thường nhưng càng giảm concurrency — chọn mức thấp nhất đủ đúng.