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

Migliora le prestazioni di mysql LOAD DATA / mysqlimport?

Il motore MySQL/MariaDB ha poca parallelizzazione durante la creazione di inserimenti di massa. Può utilizzare solo un core della CPU per LOAD DATA dichiarazione. Probabilmente potresti monitorare l'utilizzo della CPU durante il caricamento per vedere che un core è completamente utilizzato e può fornire solo una piccola parte dei dati di output, lasciando così il throughput del disco sottoutilizzato.

La versione più recente di MySQL ha una nuova funzione di caricamento parallelo:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-tabella-parallela.html . Sembra promettente ma probabilmente non ha ancora ricevuto molti feedback. Non sono sicuro che aiuterebbe nel tuo caso.

Ho visto varie liste di controllo su Internet che consigliavano di avere valori più alti nei seguenti parametri di configurazione:log_buffer_size , log_file_size , write_io_threads , bulk_insert_buffer_size . Ma i vantaggi non sono stati molto pronunciati quando ho eseguito i test di confronto (forse il 10-20% più veloce del semplice innodb_buffer_pool_size essere abbastanza grande).