MySQL/MariaDB двигателят имат малко паралелизиране при правене на групови вмъквания. Може да използва само едно процесорно ядро за LOAD DATA
изявление. Вероятно може да наблюдавате използването на процесора по време на натоварване, за да видите, че едно ядро е напълно използвано и може да предостави само толкова изходни данни, като по този начин оставяте пропускателната способност на диска недостатъчно използвана.
Най-новата версия на MySQL има нова функция за паралелно зареждане:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Изглежда обещаващо, но вероятно все още не е получил много отзиви. Не съм сигурен, че би помогнало във вашия случай.
Видях различни контролни списъци в интернет, които препоръчват да има по-високи стойности в следните конфигурационни параметри:log_buffer_size
, log_file_size
, write_io_threads
, bulk_insert_buffer_size
. Но ползите не бяха много изразени, когато направих сравнителни тестове (може би 10-20% по-бързо от просто innodb_buffer_pool_size
е достатъчно голям).