Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhorar o desempenho do mysql LOAD DATA/mysqlimport?


O mecanismo MySQL/MariaDB tem pouca paralelização ao fazer inserções em massa. Ele só pode usar um núcleo de CPU por LOAD DATA declaração. Você provavelmente pode monitorar a utilização da CPU durante o carregamento para ver que um núcleo é totalmente utilizado e pode fornecer apenas alguns dados de saída - deixando assim a taxa de transferência do disco subutilizada.

A versão mais recente do MySQL tem um novo recurso de carregamento paralelo:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Parece promissor, mas provavelmente ainda não recebeu muito feedback. Não tenho certeza se ajudaria no seu caso.

Eu vi várias listas de verificação na internet que recomendavam ter valores mais altos nos seguintes parâmetros de configuração:log_buffer_size , log_file_size , write_io_threads , bulk_insert_buffer_size . Mas os benefícios não foram muito pronunciados quando realizei testes de comparação (talvez 10-20% mais rápido do que apenas innodb_buffer_pool_size sendo grande o suficiente).