InnoDB
adalah mesin transaksi.
Ini berarti bahwa dalam skenario berikut:
Session A
menyisipkan catatan1
Session B
menyisipkan catatan2
Session A
memutar 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,
InnoDB
menggunakanAUTO-INC
tingkat tabel khusus kunci yang disimpannya hingga akhirSQL
saat ini pernyataan, bukan sampai akhir transaksi. Strategi pelepasan kunci khusus diperkenalkan untuk meningkatkan konkurensi untuk penyisipan ke dalam tabel yang berisiAUTO_INCREMENT
kolom…
InnoDB
menggunakan penghitung kenaikan otomatis dalam memori selama server berjalan. Saat server dihentikan dan dihidupkan ulang,InnoDB
menginisialisasi ulang penghitung untuk setiap tabel untukINSERT
first pertama ke tabel, seperti yang dijelaskan sebelumnya.
Jika Anda takut dengan id
kolom melilit, menjadikannya BIGINT
(panjang 8 byte).