Det lyder som om det enten er
- Ubalance i indekset over tid
- Diskfragmentering
- Intern innodb-datafil(er) fragmentering
Du kan prøve at analyze table foo
som ikke tager låse, kun et par indeksdyk og tager et par sekunder.
Hvis dette ikke løser det, kan du bruge
mysql> SET PROFILING=1;
mysql> INSERT INTO foo ($testdata);
mysql> show profile for QUERY 1;
og du bør se, hvor det meste af tiden bliver brugt.
Tilsyneladende præsterer innodb bedre, når indsætninger udføres i PK-rækkefølge, er dette din sag?