Một điểm nghẽn cần lưu ý là Bộ đệm Nhật ký InnoDB. Kích thước được đặt bởi innodb_log_buffer_size . Đây là những gì Tài liệu MySQL nói về nó:
Kích thước tính theo byte của bộ đệm mà InnoDB sử dụng để ghi vào tệp nhật ký trên đĩa. Giá trị mặc định là 8MB. Bộ đệm nhật ký lớn cho phép các giao dịch lớn chạy mà không cần ghi nhật ký vào đĩa trước khi giao dịch được cam kết. Do đó, nếu bạn có các giao dịch lớn, làm cho bộ đệm nhật ký lớn hơn sẽ tiết kiệm I / O đĩa.
Không nên nhầm lẫn Bộ đệm Nhật ký InnoDB với Nhóm Bộ đệm InnoDB. Sự khác biệt chính giữa chúng là mục đích của chúng. Bộ đệm Nhật ký InnoDB về cơ bản sẽ ghi lại các thay đổi ngắn hạn được ghi vào nhật ký làm lại (ib_logfile0, ib_logfile1). Nhóm bộ đệm InnoDB (có kích thước bằng innodb_buffer_pool_size ) lưu trữ dữ liệu và các trang chỉ mục sẽ được cam kết (nếu các trang bị bẩn) và cuối cùng được ghi) vào đĩa. Sau khi cam kết, các trang thay đổi vẫn còn trong RAM cho đến khi được xóa thông qua các quy tắc LRU.
Các giao dịch lớn phải chuyển qua Bộ đệm Đăng nhập. Như đã đề cập, bộ đệm nhật ký lớn hơn sẽ giảm I / O đĩa. Chỉ có một cam kết lớn sẽ đưa ra một nút cổ chai.
Bạn có thể muốn xem xét các tùy chọn InnoDB khác để định cấu hình.
Tôi có các bài viết khác về tối ưu hóa InnoDB để nghiên cứu thêm