TL; DR:Nếu diễn đàn của bạn hoạt động chậm, thì MỨC BẤT CẬP GIAO DỊCH rất có thể không phải là nguyên nhân của điều đó và việc đặt nó thành bất kỳ thứ gì khác ngoài mặc định sẽ khó có tác dụng. Đặt innodb_flush_log_on_trx_commit =2 sẽ hữu ích, nhưng có hậu quả về độ bền đối với sự cố.
Phiên bản dài:
Tôi đã viết lên MỨC ĐỘ BAN HÀNH GIAO DỊCH nào trong http:/ /mysqldump.azundris.com/archives/77-Transactions-An-InnoDB-Tutorial.html . Xem tất cả 3 bài viết tổng quan về InnoDB trong http://mysqldump.azundris.com/categories/32 -InnoDB .
Kết quả cho thấy trong mọi trường hợp, hệ thống phải có khả năng ROLLBACK, vì vậy ngay cả việc ĐỌC KHÔNG ĐƯỢC ĐỀ XUẤT cũng thay đổi bất cứ điều gì cần thực hiện khi ghi.
Đối với giao dịch đọc, quá trình đọc sẽ chậm hơn khi chuỗi hoàn tác bản ghi nhật ký dẫn đến chế độ xem cho giao dịch đọc dài hơn, vì vậy READ UNCOMMITTED hoặc READ COMMITTED READ có thể nhanh hơn một chút so với REPEATABLE READ mặc định. Nhưng bạn phải nhớ rằng chúng ta đang nói về truy cập bộ nhớ ở đây và chính việc truy cập đĩa làm chậm bạn.
Về vấn đề AUTOCOMMIT:Điều này sẽ đồng bộ hóa mọi câu lệnh ghi vào đĩa. Nếu bạn đã sử dụng MyISAM trước đây và điều đó đã đủ tốt, bạn có thể muốn định cấu hình
[mysqld]
innodb_flush_log_on_trx_commit = 2
trong tệp my.cnf của bạn và khởi động lại máy chủ.
Điều đó sẽ làm cho cam kết ghi từ mysqld vào bộ đệm đệm hệ thống tệp, nhưng trì hoãn việc chuyển bộ đệm bộ đệm hệ thống tệp vào đĩa để nó chỉ xảy ra một lần một giây. Bạn sẽ không mất bất kỳ dữ liệu nào khi gặp sự cố mysqld, nhưng bạn có thể mất tới 1 giây ghi khi gặp sự cố phần cứng. Tuy nhiên, InnoDB sẽ tự động phục hồi, ngay cả sau sự cố phần cứng và hoạt động vẫn tốt hơn so với trước đây với MyISAM, ngay cả khi nó không phải là ACID đầy đủ. Nó sẽ nhanh hơn nhiều so với AUTOCOMMIT mà không có cài đặt đó.