Lập trình 26/10/2026 7 phút

Khoá và mức cô lập đo thật: đọc lại trong REPEATABLE READ vẫn ra 1000 còn READ COMMITTED ra 3000, gap lock chặn chèn vào khe 2035 ms, và một deadlock thật bị InnoDB phá trong tích tắc với lỗi 1213

Phần 7 sê-ri MySQL và InnoDB: mức cô lập quyết định một giao dịch thấy gì, còn khoá quyết định ai phải chờ ai. Đo thật trong mysql:8: cùng một kịch bản, đọc lại trong REPEATABLE READ vẫn ra 1000 (ảnh chụp cả giao dịch) còn READ COMMITTED ra 3000 (ảnh chụp mới mỗi câu). Gap lock của REPEATABLE READ chặn một INSERT vào khe trong khoảng đang bị khoá mất 2035 ms, trong khi READ COMMITTED cho chèn ngay sau 57 ms. Và một deadlock thật — hai giao dịch khoá hai hàng theo thứ tự ngược nhau — bị InnoDB phát hiện tức thì, cuộn lại một nạn nhân với lỗi 1213, đọc được trong SHOW ENGINE INNODB STATUS.