Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi y a-t-il parfois un ou plusieurs écarts dans la valeur de la colonne d'incrémentation automatique ?

Cela semble avoir quelque chose à voir avec la façon dont vos instructions INSERT sont formées. Voir ce violon , qui est légèrement modifié par rapport à votre exemple. Dans ce cas, vous n'obtenez pas d'espace (mais vous en aurez probablement si vous ajoutez plus d'insertions... En fait, c'est le cas .).

EDIT :Après avoir creusé un peu plus, j'ai trouvé que vous n'obtenez pas de lacunes si vous utilisez le moteur MyISAM (par opposition à InnoDB). Alors, peut-être s'agit-il d'un défaut ou d'un choix de conception curieux dans InnoDB... ?

EDIT 2 :des recherches plus approfondies ont révélé ce bogue , déposée contre le moteur de stockage InnoDB. Cela correspond très étroitement au cas d'utilisation de la question d'origine. Aucune solution au bogue n'a été fournie, mais il semble qu'une solution consiste à définir innodb_autoinc_lock_mode à 0 dans votre fichier my.cnf avant le démarrage de mysqld.