InnoDB est un moteur transactionnel.
Cela signifie que dans le scénario suivant :
Session Ainsère l'enregistrement1Session Binsère l'enregistrement2Session Arecule
, il y a soit une possibilité d'écart soit une session B se verrouillerait jusqu'à la session A validé ou annulé.
InnoDB les concepteurs (comme la plupart des autres concepteurs de moteurs transactionnels) ont choisi d'autoriser des espaces.
À partir de la documentation :
Lors de l'accès au compteur auto-incrémenté,
InnoDButilise unAUTO-INCspécial au niveau de la table verrou qu'il conserve jusqu'à la fin duSQLcourant relevé, et non jusqu'à la fin de la transaction. La stratégie spéciale de déverrouillage a été introduite pour améliorer la simultanéité des insertions dans une table contenant unAUTO_INCREMENTcolonne…
InnoDButilise le compteur d'auto-incrémentation en mémoire tant que le serveur fonctionne. Lorsque le serveur est arrêté et redémarré,InnoDBréinitialise le compteur de chaque table pour le premierINSERTà la table, comme décrit précédemment.
Si vous avez peur de l'id la colonne s'enroule autour, rendez-la BIGINT (8 octets de long).