sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué las inserciones/actualizaciones de MySQL InnoDB en tablas grandes se vuelven muy lentas cuando hay algunos índices?

Parece que es

  • Desequilibrio del índice con el tiempo
  • Fragmentación de disco
  • Fragmentación de archivos de datos internos de innodb

Podrías intentar analyze table foo que no toma bloqueos, solo unas pocas inmersiones de índice y toma unos segundos.

Si esto no lo soluciona, puede usar

mysql> SET PROFILING=1;
mysql> INSERT INTO foo ($testdata);
mysql> show profile for QUERY 1;

y debería ver dónde se pasa la mayor parte del tiempo.

Aparentemente, innodb funciona mejor cuando las inserciones se realizan en orden PK, ¿es este su caso?