MariaDB - INNODB omitiendo la secuencia numérica al crear registros incrementales, ¿por qué?
No sé si este es el comportamiento esperado conINNODB
, pero realmente creo que es totalmente extraño.
Si uso la misma instrucción SQL usandoMYISAM
, el comportamiento se produce como se esperaba.
MYISAM
CREATE TABLE main_database.numero (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id)
) ENGINE = MYISAM DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
INSERT INTO main_database.numero VALUES(NULL); -- First, run once time ...
INSERT INTO main_database.numero SELECT NULL FROM main_database.numero; -- After, more 12 times = 4096 records
Result (comportamiento esperado):
Ahora si uso exactamente la misma declaración, sin embargo, informando que el motor esINNODB
.
INNODB
CREATE TABLE main_database.numero (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id)
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
INSERT INTO main_database.numero VALUES(NULL); -- First, run once time ...
INSERT INTO main_database.numero SELECT NULL FROM main_database.numero; -- After, more 12 times = 4096 records
Result (resultado extraño: omitiendo la secuencia numérica):
e hecho, ambos motores están creando los 4096 registros esperados, pero me preocupaba el comportamiento deINNO
, porque estoy migrando mis bases de datos desdeMYISAM
aINNODB
y no sé cuánto puede afectar eso a mis aplicaciones.