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_mode
tham 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ảINSERT
các câu lệnh sẽ gán các giá trị liên tiếp choAUTO_INCREMENT
cộ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_INCREMENT
cộ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.