Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi les insertions/mises à jour de MySQL InnoDB sur les grandes tables deviennent-elles très lentes lorsqu'il y a peu d'index ?

On dirait que c'est soit

  • Déséquilibrage de l'index dans le temps
  • Fragmentation du disque
  • Fragmentation des fichiers de données innodb internes

Vous pouvez essayer analyze table foo qui ne prend pas de verrous, juste quelques plongées d'index et prend quelques secondes.

Si cela ne résout pas le problème, vous pouvez utiliser

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

et vous devriez voir où la plupart du temps est passé.

Apparemment, innodb fonctionne mieux lorsque les insertions sont effectuées dans l'ordre PK, est-ce votre cas ?