UPDATE
đang chạy trong giao dịch - đó là một atomic
hoạt động, có nghĩa là nếu một trong các hàng bị lỗi (ví dụ:vì ràng buộc duy nhất), nó sẽ không cập nhật bất kỳ hàng nào trong số 5000 hàng. Đây là một trong những thuộc tính ACID của cơ sở dữ liệu giao dịch.
Vì điều này mà UPDATE
giữ khóa trên tất cả các hàng cho toàn bộ giao dịch. Nếu không, một giao dịch khác có thể cập nhật thêm giá trị của một hàng, dựa trên giá trị hiện tại của hàng đó (giả sử cập nhật bản ghi đặt giá trị =giá trị * '2'). Câu lệnh này sẽ tạo ra kết quả khác nhau tùy thuộc vào giao dịch đầu tiên cam kết hoặc quay trở lại. Do đó, nó phải đợi giao dịch đầu tiên hoàn thành tất cả 5000 bản cập nhật.
Nếu bạn muốn giải phóng ổ khóa, chỉ cần cập nhật theo lô (nhỏ hơn).
P.S. autocommit
kiểm soát nếu mỗi câu lệnh được phát hành trong giao dịch riêng, nhưng không ảnh hưởng đến việc thực hiện một truy vấn duy nhất