Silnik MySQL/MariaDB ma niewielką równoległość podczas tworzenia wstawek zbiorczych. Może używać tylko jednego rdzenia procesora na LOAD DATA
oświadczenie. Prawdopodobnie możesz monitorować wykorzystanie procesora podczas ładowania, aby zobaczyć, jak jeden rdzeń jest w pełni wykorzystany i może dostarczyć tylko tyle danych wyjściowych - w ten sposób pozostawiając przepustowość dysku niewykorzystaną.
Najnowsza wersja MySQL ma nową funkcję ładowania równoległego:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Wygląda obiecująco, ale prawdopodobnie nie otrzymał jeszcze wielu opinii. Nie jestem pewien, czy pomogłoby to w twoim przypadku.
Widziałem różne listy kontrolne w Internecie, które zalecały posiadanie wyższych wartości w następujących parametrach konfiguracyjnych:log_buffer_size
, log_file_size
, write_io_threads
, bulk_insert_buffer_size
. Ale korzyści nie były zbyt wyraźne, gdy wykonałem testy porównawcze (może 10-20% szybciej niż tylko innodb_buffer_pool_size
jest wystarczająco duży).