sql >> Databasteknik >  >> RDS >> Mysql

Förbättra prestandan för mysql LOAD DATA / mysqlimport?

MySQL/MariaDB-motorn har liten parallellisering när man gör bulk-insatser. Den kan bara använda en CPU-kärna per LOAD DATA påstående. Du kanske övervakar CPU-användning under laddning för att se att en kärna är fullt utnyttjad och att den bara kan tillhandahålla så mycket utdata - vilket gör att diskens genomströmning blir underutnyttjad.

Den senaste versionen av MySQL har en ny funktion för parallell laddning:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Det ser lovande ut men har förmodligen inte fått så mycket feedback än. Jag är inte säker på att det skulle hjälpa i ditt fall.

Jag såg olika checklistor på internet som rekommenderade att ha högre värden i följande konfigurationsparametrar:log_buffer_size , log_file_size , write_io_threads , bulk_insert_buffer_size . Men fördelarna var inte särskilt uttalade när jag utförde jämförelsetester (kanske 10-20 % snabbare än bara innodb_buffer_pool_size är tillräckligt stor).



  1. MySQL - Hur får man en lista över värden i tabell A som inte finns i tabell B?

  2. Hur man subtraherar ett år från ett datum i MariaDB

  3. Stöder MySQL historiskt datum (som 1200)?

  4. Hur man undviker inlåsning av PostgreSQL Cloud-leverantörer