Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego wstawianie/aktualizacja MySQL InnoDB w dużych tabelach jest bardzo powolna, gdy jest kilka indeksów?

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?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Złożony indeks FULLTEXT w MySQL

  2. Metoda haszowania hasła Mysql stara vs nowa

  3. Wybierz zapytanie do pobrania wierszy w MySQL

  4. Jak zaprojektować hierarchiczny system kontroli dostępu oparty na rolach?

  5. Uruchamianie plików MySQL *.sql w PHP