sql >> Databasteknik >  >> RDS >> Mysql

Varför blir MySQL InnoDB-infogningar/uppdateringar på stora tabeller väldigt långsamma när det finns några få index?

Det låter som att det är antingen

  • Obalans i index över tid
  • Diskfragmentering
  • Intern innodb-datafil(er) fragmentering

Du kan prova analyze table foo som inte tar lås, bara några indexdyk och tar några sekunder.

Om detta inte löser det kan du använda

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

och du bör se var den mesta tiden spenderas.

Tydligen presterar innodb bättre när insättningar görs i PK-ordning, är detta ditt fall?



  1. Applikationsanvändare kontra Row Level Security

  2. mysql lagrad procedurfel (1172, 'Resultat bestod av mer än en rad')

  3. Hur tar man bort alla icke-alfabetiska tecken från strängen i SQL Server?

  4. Hur man skapar en totalrad i Access