Motor MySQL/MariaDB má malou paralelizaci při hromadném vkládání. Může používat pouze jedno jádro CPU na LOAD DATA
tvrzení. Pravděpodobně můžete sledovat využití CPU během zatížení, abyste viděli, že jedno jádro je plně využito a může poskytnout pouze tolik výstupních dat – takže propustnost disku zůstává nevyužitá.
Nejnovější verze MySQL má novou funkci paralelního načítání:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Vypadá to slibně, ale pravděpodobně zatím nedostalo moc ohlasů. Nejsem si jistý, že by to ve vašem případě pomohlo.
Na internetu jsem viděl různé kontrolní seznamy, které doporučovaly vyšší hodnoty v následujících konfiguračních parametrech:log_buffer_size
, log_file_size
, write_io_threads
, bulk_insert_buffer_size
. Ale přínosy nebyly příliš výrazné, když jsem prováděl srovnávací testy (možná o 10–20 % rychlejší než jen innodb_buffer_pool_size
je dostatečně velký).