Bạn không nói đây là hệ thống thử nghiệm hay sản xuất; Tôi giả định đó là sản xuất.
Có khả năng là bạn đã đặt bảng có kích thước mà các chỉ mục của nó (hoặc toàn bộ lô) không còn phù hợp với bộ nhớ.
Điều này có nghĩa là InnoDB phải đọc các trang trong khi chèn (tùy thuộc vào việc phân phối các giá trị chỉ mục của hàng mới của bạn). Việc đọc các trang (đọc ngẫu nhiên) thực sự rất chậm và cần phải tránh nếu có thể.
Phân vùng có vẻ như là giải pháp rõ ràng nhất, nhưng phân vùng của MySQL có thể không phù hợp với trường hợp sử dụng của bạn.
Bạn chắc chắn nên xem xét tất cả các tùy chọn có thể - đưa bảng vào máy chủ thử nghiệm trong phòng thí nghiệm của bạn để xem nó hoạt động như thế nào.
Với tôi, khóa chính của bạn có thể không cần thiết (bạn có một chỉ mục duy nhất khác), vì vậy việc loại bỏ khóa đó là một trong những tùy chọn.
Ngoài ra, hãy xem xét plugin và nén innodb, điều này sẽ làm cho innodb_buffer_pool của bạn tiến xa hơn.
Bạn thực sự cần phải phân tích các trường hợp sử dụng của mình để quyết định xem bạn có thực sự cần giữ lại tất cả dữ liệu này hay không và phân vùng có phải là một giải pháp hợp lý hay không.
Thực hiện bất kỳ thay đổi nào trên ứng dụng này có thể gây ra các vấn đề hiệu suất mới cho người dùng của bạn, vì vậy bạn cần phải thực sự cẩn thận ở đây. Nếu bạn tìm ra cách để cải thiện hiệu suất chèn, có thể nó sẽ làm giảm hiệu suất tìm kiếm hoặc hiệu suất của các hoạt động khác. Bạn sẽ cần thực hiện kiểm tra hiệu suất kỹ lưỡng trên phần cứng cấp sản xuất trước khi phát hành một thay đổi như vậy.