InnoDB adalah mesin transaksi.
Ini berarti bahwa dalam skenario berikut:
Session Amenyisipkan catatan1Session Bmenyisipkan catatan2Session Amemutar kembali
, ada kemungkinan celah atau session B akan mengunci sampai session A dilakukan atau dibatalkan.
InnoDB desainer (seperti kebanyakan desainer mesin transaksional lainnya) memilih untuk membiarkan celah.
Dari dokumentasi :
Saat mengakses penghitung kenaikan otomatis,
InnoDBmenggunakanAUTO-INCtingkat tabel khusus kunci yang disimpannya hingga akhirSQLsaat ini pernyataan, bukan sampai akhir transaksi. Strategi pelepasan kunci khusus diperkenalkan untuk meningkatkan konkurensi untuk penyisipan ke dalam tabel yang berisiAUTO_INCREMENTkolom…
InnoDBmenggunakan penghitung kenaikan otomatis dalam memori selama server berjalan. Saat server dihentikan dan dihidupkan ulang,InnoDBmenginisialisasi ulang penghitung untuk setiap tabel untukINSERTfirst pertama ke tabel, seperti yang dijelaskan sebelumnya.
Jika Anda takut dengan id kolom melilit, menjadikannya BIGINT (panjang 8 byte).