Wygląda na to, że albo
- Nierównowaga indeksu w czasie
- Fragmentacja dysku
- Wewnętrzna fragmentacja plików danych innodb
Możesz spróbować analyze table foo
który nie wymaga blokad, wystarczy kilka nurkowań indeksujących i zajmuje kilka sekund.
Jeśli to nie pomoże, możesz użyć
mysql> SET PROFILING=1;
mysql> INSERT INTO foo ($testdata);
mysql> show profile for QUERY 1;
i powinieneś zobaczyć, gdzie spędza się większość czasu.
Najwyraźniej innodb działa lepiej, gdy wstawki są wykonywane w kolejności PK, czy to twój przypadek?