Mysql
 sql >> Database >  >> RDS >> Mysql

Perché gli inserimenti/aggiornamenti di MySQL InnoDB su tabelle di grandi dimensioni diventano molto lenti quando ci sono pochi indici?

Sembra che sia

  • Indice sbilanciamento nel tempo
  • Frammentazione del disco
  • Frammentazione interna dei file di dati innodb

Potresti provare analyze table foo che non si blocca, bastano poche immersioni di indice e impiega pochi secondi.

Se il problema persiste, puoi utilizzare

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

e dovresti vedere dove viene trascorsa la maggior parte del tempo.

Apparentemente innodb funziona meglio quando gli inserti vengono eseguiti in ordine PK, è questo il tuo caso?