InnoDB
é um mecanismo transacional. Isso significa que no seguinte cenário:
Session A
insere o registro1
Session B
insere o registro2
Session A
reverte
, existe a possibilidade de uma lacuna ou
session B
bloquearia até a session A
confirmado ou revertido. InnoDB
designers (como a maioria dos outros designers de mecanismos transacionais) optaram por permitir lacunas. Da documentação> :
Ao acessar o contador de incremento automático,InnoDB
usa umAUTO-INC
especial em nível de tabela lock que mantém até o final doSQL
atual declaração, não até o final da transação. A estratégia especial de liberação de bloqueio foi introduzida para melhorar a simultaneidade de inserções em uma tabela contendo umAUTO_INCREMENT
coluna
…
InnoDB
usa o contador de incremento automático na memória enquanto o servidor estiver em execução. Quando o servidor é parado e reiniciado,InnoDB
reinicializa o contador de cada tabela para o primeiroINSERT
à mesa, conforme descrito anteriormente.
Se você tem medo do
id
coluna em volta, torne-a BIGINT
(8 bytes de comprimento).