Mam ten ogromny zrzut 32 GB SQL, który muszę zaimportować do MySQL. Nie musiałem wcześniej importować tak dużego zrzutu SQL. Zrobiłem zwykle:
mysql -uroot dbname < dbname.sql
To trwa zbyt długo. Jest stół z około 300 milionami wierszy, osiągnął 1,5 miliona w około 3 godziny. Wygląda więc na to, że cała sprawa zajęłaby 600 godzin (to 24 dni) i jest niepraktyczna. Więc moje pytanie brzmi: czy jest na to szybszy sposób?
Dalsze informacje / ustalenia
- Wszystkie tabele są InnoDB i nie zdefiniowano żadnych kluczy obcych. Istnieje jednak wiele indeksów.
- Nie mam dostępu do oryginalnego serwera i bazy danych, więc nie mogę wykonać nowej kopii zapasowej ani wykonać „gorącej” kopii itp.
- Ustawienie
innodb_flush_log_at_trx_commit = 2
sugerowane tutaj wydaje się nie wprowadzać (wyraźnie widocznej / wykładniczej) poprawy. - Statystyki serwera podczas importu (z MySQL Workbench): https://imgflip.com/gif/ed0c8 .
- Wersja MySQL to społeczność 5.6.20.
- innodb_buffer_pool_size = 16M i innodb_log_buffer_size = 8M. Czy muszę je zwiększyć?