sql >> Database teknologi >  >> RDS >> Mysql

Forbedre ydeevnen af ​​mysql LOAD DATA / mysqlimport?

MySQL/MariaDB-motoren har lidt parallelisering, når man laver bulk-indsatser. Den kan kun bruge én CPU-kerne pr. LOAD DATA udmelding. Du kan sandsynligvis overvåge CPU-udnyttelsen under belastning for at se, at en kerne er fuldt udnyttet, og den kan kun levere så meget af outputdata - og dermed efterlade diskens gennemløb underudnyttet.

Den seneste version af MySQL har en ny parallel indlæsningsfunktion:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Det ser lovende ud, men har sandsynligvis ikke fået meget feedback endnu. Jeg er ikke sikker på, at det ville hjælpe i dit tilfælde.

Jeg så forskellige tjeklister på internettet, der anbefalede at have højere værdier i følgende konfigurationsparametre:log_buffer_size , log_file_size , write_io_threads , bulk_insert_buffer_size . Men fordelene var ikke særlig udtalte, da jeg udførte sammenligningstests (måske 10-20 % hurtigere end bare innodb_buffer_pool_size er stor nok).



  1. json_encode for mysql-forespørgsel returnerer nogle null-kolonner i nogle rækker, men kolonnerne er ikke null

  2. Hvordan nulstiller man stopord i MYSQL?

  3. sammenligne datoer efter måned og år i mysql

  4. Hvordan kopierer man data fra en anden tabel uden at låse tabellen i MYSQL 6.2?