InnoDB is een transactie-engine.
Dit betekent dat in het volgende scenario:
Session Avoegt record1inSession Bvoegt record2inSession Arolt terug
, is er een mogelijkheid van een hiaat of session B zou vergrendelen tot de session A gepleegd of teruggedraaid.
InnoDB ontwerpers (zoals de meeste andere transactionele engine-ontwerpers) kozen ervoor om hiaten toe te staan.
Uit de documentatie :
Bij toegang tot de teller voor automatisch ophogen, InnoDB gebruikt een speciaal AUTO-INC op tabelniveau slot dat het aan het einde van de huidige SQL houdt verklaring, niet tot het einde van de transactie. De speciale ontgrendelingsstrategie is geïntroduceerd om de gelijktijdigheid van invoegingen in een tabel met een AUTO_INCREMENT te verbeteren kolom
…
InnoDB gebruikt de in-memory auto-increment-teller zolang de server draait. Wanneer de server wordt gestopt en opnieuw wordt opgestart, InnoDB initialiseert de teller voor elke tafel opnieuw voor de eerste INSERT naar de tafel, zoals eerder beschreven.
Als je bang bent voor de id kolomomloop, maak het BIGINT (8 bytes lang).