Si deshabilita las claves (suspender la indexación) en una tabla mysql INNODB, ¿cuánto dura esa configuración?
Para una consulta como:
ALTER TABLE users DISABLE KEYS;
¿Se vuelven a habilitar las teclas al final del script? ¿o duran hasta que vuelva a activar explícitamente la indexación?
mysql
database
database-administration
indexing
Daniel Beardsley
fuente
fuente
Respuestas:
El Fine Manual (que vale la pena leer) sugiere que el efecto de esa declaración dura hasta
ALTER TABLE ... ENABLE KEYS
que se ejecuta una declaración correspondiente .fuente
En realidad, ¡ ALTERAR TABLA ... DESACTIVAR TECLAS y ALTERAR TABLA ... ACTIVAR TECLAS no funcionan!
Abordé esto el 13 de febrero de 2011.
Investigué un poco más y descubrí de la compañía madre de InnoDB, InnoBase Oy (antes de ser 7 de 9 en el Oracle Borg), que este es el caso.
Este enlace sugiere hacer DISABLE KEYS y deshabilitar claves foráneas juntas. Aunque creo que ambos son innecesarios, esto aparentemente funcionó para alguien.
ACTUALIZACIÓN 2011-07-18 12:35 EDT
Esta es una muy buena pregunta porque expone un mal que quedó en MySQL. El programa mysqldump deja ciegamente DESACTIVAR CLAVES y ACTIVAR CLAVES alrededor de la creación y carga sobre cada tabla sin tener en cuenta el motor de almacenamiento. Dado que DISABLE KEYS y ENABLE KEYS no funcionan (en el mejor de los casos no tiene ningún efecto) en las tablas de InnoDB, ya que funciona correctamente para MyISAM, este hecho desconocido debería estar mejor documentado por la comunidad MySQL. Oh sí, MySQL está en el medio del Imperio Galáctico conocido como Oracle. No voy a contener la respiración por los cambios de documentación que se avecinan.
fuente