MySQL/MariaDB-engine hebben weinig parallellisatie bij het maken van bulk-inserts. Het kan slechts één CPU-kern gebruiken per LOAD DATA
uitspraak. U kunt tijdens het laden waarschijnlijk het CPU-gebruik in de gaten houden om te zien dat één kern volledig wordt gebruikt en dat deze slechts een beperkt aantal uitvoergegevens kan leveren, waardoor de schijfdoorvoer onderbenut blijft.
De meest recente versie van MySQL heeft een nieuwe functie voor parallel laden:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Het ziet er veelbelovend uit, maar heeft waarschijnlijk nog niet veel feedback gekregen. Ik weet niet zeker of het in jouw geval zou helpen.
Ik zag verschillende checklists op internet die aanraadden om hogere waarden te gebruiken in de volgende configuratieparameters:log_buffer_size
, log_file_size
, write_io_threads
, bulk_insert_buffer_size
. Maar de voordelen waren niet erg uitgesproken toen ik vergelijkingstests uitvoerde (misschien 10-20% sneller dan alleen innodb_buffer_pool_size
groot genoeg zijn).