INSERT ... ON DUPLICATE KEY UPDATE
se describe como una "inserción de modo mixto" para los propósitos de AUTO_INCREMENT
de InnoDB manejo. Las inserciones de modo mixto son básicamente aquellas en las que el máximo número de AUTO_INCREMENT
requeridos Se conocen los valores, pero la cantidad que realmente se necesitará no lo es.
Las inserciones en modo mixto se manejan especialmente de forma predeterminada, como se describe en Documentos de MySQL :
Si está utilizando InnoDB, sus alternativas son:
- Evite
INSERT ... ON DUPLICATE KEY UPDATE
. - Establezca el
innodb_autoinc_lock_mode
parámetro a0
, para el modo de bloqueo de incremento automático "tradicional", que garantiza que todos losINSERT
declaraciones asignarán valores consecutivos paraAUTO_INCREMENT
columnas Sin embargo, esto se logra mediante el bloqueo durante la declaración, por lo que hay una pérdida de rendimiento asociada con esta configuración. - (Recomendado) Ignora los espacios en blanco en el
AUTO_INCREMENT
columna.
Nota:AUTO_INCREMENT
el manejo es totalmente diferente en MyISAM, que no muestra este comportamiento.