CHÈN ... TRÊN CẬP NHẬT KHÓA DUPLICATE được mô tả như một "bộ chèn chế độ hỗn hợp" cho các mục đích của AUTO_INCREMENT của InnoDB sự điều khiển. Các phần chèn ở chế độ hỗn hợp về cơ bản là những phần chèn có giá trị tối đa số lượng AUTO_INCREMENT bắt buộc các giá trị đã biết, nhưng số lượng sẽ thực sự cần thiết không.
Các chèn ở chế độ hỗn hợp được xử lý đặc biệt theo mặc định, như được mô tả trong Tài liệu MySQL :
Nếu bạn đang sử dụng InnoDB, các lựa chọn thay thế của bạn là:
- Tránh
INSERT ... TRÊN CẬP NHẬT KHÓA DUPLICATE. - Đặt
innodb_autoinc_lock_modetham số thành0, đối với chế độ khóa tự động gia tăng "truyền thống", đảm bảo rằng tất cảINSERTcác câu lệnh sẽ gán các giá trị liên tiếp choAUTO_INCREMENTcột. Tuy nhiên, điều này được thực hiện bằng cách khóa trong khi câu lệnh, do đó, có thể xảy ra tình trạng mất hiệu suất liên quan đến cài đặt này. - (Được khuyến nghị) Bỏ qua các khoảng trống trong
AUTO_INCREMENTcột.
Lưu ý: AUTO_INCREMENT xử lý hoàn toàn khác trong MyISAM, không thể hiện hành vi này.