Lập trình 27/10/2026 7 phút

Redo log đo thật: với innodb_flush_log_at_trx_commit=1, mười nghìn commit gọi fsync 10.209 lần (7.680 commit/s); đổi sang 2 chỉ còn 4 lần fsync và nhanh hơn, còn group commit gộp commit đồng thời xuống 3.688 lần fsync cho gấp đôi throughput vẫn bền

Phần 8 sê-ri MySQL và InnoDB: redo log cho giao dịch commit xong là bền dù máy tắt đột ngột, và innodb_flush_log_at_trx_commit quyết định đánh đổi giữa độ bền và throughput. Đo thật trong mysql:8 bằng số lần gọi fsync (Innodb_os_log_fsyncs): mười nghìn commit riêng lẻ ở mức 1 gọi fsync 10.209 lần (7.680 commit/s, bền từng commit), ở mức 2 chỉ 4 lần (10.384 commit/s), ở mức 0 chỉ 1 lần (17.889 commit/s). Group commit gộp các commit đồng thời: cùng mức 1, chạy qua 8 kết nối song song thì mười nghìn commit chỉ cần 3.688 lần fsync và đạt 17.990 commit/s — gấp đôi mà độ bền không đổi.