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

Wydajność MySQL Insert spada na dużym stole

Nie powiedziałeś, czy to był system testowy, czy produkcja; Zakładam, że to produkcja.

Prawdopodobnie masz rozmiar tabeli, w którym jej indeksy (lub cała partia) nie mieszczą się już w pamięci.

Oznacza to, że InnoDB musi wczytywać strony podczas wstawiania (w zależności od rozkładu wartości indeksów nowych wierszy). Czytanie stron (odczyty losowe) jest naprawdę powolne i należy go unikać, jeśli to możliwe.

Partycjonowanie wydaje się najbardziej oczywistym rozwiązaniem, ale partycjonowanie MySQL może nie pasować do twojego przypadku użycia.

Z pewnością powinieneś rozważyć wszystkie możliwe opcje - przenieś tabelę na serwer testowy w swoim laboratorium, aby zobaczyć, jak się zachowuje.

Twój klucz podstawowy wygląda na to, że prawdopodobnie nie jest wymagany (masz inny unikalny indeks), więc wyeliminowanie tego jest jedną z opcji.

Weź również pod uwagę wtyczkę i kompresję innodb, dzięki czemu Twoja innodb_buffer_pool pójdzie dalej.

Naprawdę musisz przeanalizować swoje przypadki użycia, aby zdecydować, czy rzeczywiście musisz zachować wszystkie te dane i czy partycjonowanie jest rozsądnym rozwiązaniem.

Dokonywanie jakichkolwiek zmian w tej aplikacji może spowodować nowe problemy z wydajnością dla twoich użytkowników, więc musisz być naprawdę ostrożny. Jeśli znajdziesz sposób na poprawę wydajności wstawiania, możliwe, że zmniejszy to wydajność wyszukiwania lub wydajność innych operacji. Przed wydaniem takiej zmiany musisz przeprowadzić dokładny test wydajności na sprzęcie klasy produkcyjnej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć procedurę składowaną w MySQL za pomocą Knex raw

  2. Jak wdrożyć MySQL na Ubuntu i w pełni zarządzany?

  3. Zserializowane metadane wyszukiwania Wordpress z niestandardowym zapytaniem

  4. mysql wybierz liczbę rekordów dla każdego miesiąca

  5. Najlepszy sposób radzenia sobie z błędami pisowni w wyszukiwaniu pełnotekstowym MySQL