MySQL / MariaDB engine có ít tính năng song song khi thực hiện chèn hàng loạt. Nó chỉ có thể sử dụng một lõi CPU cho mỗi LOAD DATA
bản tường trình. Bạn có thể theo dõi việc sử dụng CPU trong quá trình tải để thấy một lõi được sử dụng hết và nó chỉ có thể cung cấp rất nhiều dữ liệu đầu ra - do đó khiến thông lượng đĩa bị sử dụng không đầy đủ.
Phiên bản mới nhất của MySQL có tính năng tải song song mới: https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-parallel-table.html . Có vẻ hứa hẹn nhưng có lẽ vẫn chưa nhận được nhiều phản hồi. Tôi không chắc nó sẽ hữu ích trong trường hợp của bạn.
Tôi thấy nhiều danh sách kiểm tra khác nhau trên internet khuyến nghị có giá trị cao hơn trong các thông số cấu hình sau:log_buffer_size
, log_file_size
, write_io_threads
, bulk_insert_buffer_size
. Nhưng lợi ích không rõ ràng lắm khi tôi thực hiện các thử nghiệm so sánh (có thể nhanh hơn 10-20% so với chỉ innodb_buffer_pool_size
đủ lớn).