sql >> Databáze >  >> RDS >> Mysql

Proč jsou vkládání / aktualizace MySQL InnoDB u velkých tabulek velmi pomalé, když existuje několik indexů?

Zní to jako buď

  • Nevyváženost indexu v průběhu času
  • Fragmentace disku
  • Interní fragmentace datových souborů innodb

Můžete zkusit analyze table foo který nezabere zámky, jen pár indexových ponorů a trvá několik sekund.

Pokud to nevyřeší, můžete použít

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

a měli byste vidět, kde trávíte většinu času.

Innodb zjevně funguje lépe, když jsou vložky provedeny v pořadí PK, je to váš případ?



  1. Nelze načíst metadata

  2. Proč používat Select Top 100 Percent?

  3. Vyzkoušejte tyto doporučené postupy pro monitorování databáze MySQL

  4. docker-compose:pokaždé znovu inicializuje databázi MySQL