MySQL: ¿Truncar tabla dentro de la transacción?

Tengo una tabla InnoDB que debe volver a llenarse cada diez minutos en cualquier lugar de 60k a 200k registros. Nuestro enfoque hasta este punto ha sido el siguiente:

Desactivar Autocommitir Truncar la tabla Realizar consultas seleccionadas y cálculos adicionales (usando PHP)Insertar nuevos registrosComete

Sin embargo, después de realizar la operación Truncar, los datos se eliminan de inmediato y ya no están disponibles en la Interfaz de usuario. Para nuestros usuarios, esto ha sido bastante desconcertante, aunque en unos 30 segundos más o menos el script encuentra la operación Commit y la tabla se vuelve a llenar.

Pensé que tal vez podría concluir toda la operación,inclus elTruncate, en una transacción, y que esto podría reducir el tiempo durante el cual la tabla aparece vacía para los usuarios. Entonces cambiéSET AUTOCOMMIT=0 aSTART TRANSCATION.

Yikes! Esto tuvo el opuesto del efecto deseado! Ahora elTRUNCATEa operación @ todavía ocurre al comienzo del script, pero requieremucho mas larg para ejecutar realmente elINSERT operaciones dentro de la transacción, de modo que para cuando elCOMMITa operación @ se lleva a cabo y los datos en la tabla están disponibles nuevamente, han sido casi¡diez minutos

¿Qué podría causar esto? A decir verdad, no esperaba ningún cambio en absoluto, porque tenía la impresión de que iniciar una transacción básicamente apagaAutocommit ¿¿de todas formas?

Respuestas a la pregunta(3)

Su respuesta a la pregunta