Ce "problème" est uniquement dans InnoDB .
C'est par conception et destiné à améliorer la simultanéité :un autre thread peut utiliser un AUTO_INCREMENT sans avoir à attendre les résultats d'un UPSERT opération.
À partir de la documentation :
MyISAM ne présente pas ce comportement, puisqu'il s'agit de AUTO_INCREMENT l'algorithme est implémenté différemment (en raison de sa capacité limitée à prendre en charge simultanément DML ).