InnoDB
là một công cụ giao dịch.
Điều này có nghĩa là trong trường hợp sau:
-
Session A
chèn bản ghi1
-
Session B
chèn bản ghi2
-
Session A
quay trở lại
, có khả năng có khoảng trống hoặc session B
sẽ khóa cho đến khi session A
đã cam kết hoặc quay trở lại.
InnoDB
các nhà thiết kế (cũng như hầu hết các nhà thiết kế công cụ giao dịch khác) đã chọn để cho phép các khoảng trống.
Từ tài liệu > :
Khi truy cập bộ đếm tăng tự động,
InnoDB
sử dụngAUTO-INC
cấp bảng đặc biệt khóa nó giữ ở cuốiSQL
hiện tại tuyên bố, không phải để kết thúc giao dịch. Chiến lược phát hành khóa đặc biệt đã được giới thiệu để cải thiện tính đồng thời cho các phần chèn vào bảng có chứaAUTO_INCREMENT
cột…
InnoDB
sử dụng bộ đếm gia tăng tự động trong bộ nhớ miễn là máy chủ chạy. Khi máy chủ dừng và khởi động lại,InnoDB
khởi động lại bộ đếm cho mỗi bảng choINSERT
đầu tiên vào bảng, như đã mô tả trước đó.
Nếu bạn sợ id
cột bao quanh, đặt nó thành BIGINT
(Dài 8 byte).