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?