innodb_flush_log_at_trx_commit| 值 | 行為 | 效能/安全性 |
|---|---|---|
| 0 | 每秒寫入日誌檔並 fsync 一次 | 高效能,可能丟失 1 秒資料 |
| 1 | 每次 COMMIT 寫入並 fsync | 最安全,IOPS 壓力大,效能較低 |
| 2 | 每次 COMMIT 寫入,每秒 fsync | 折中,僅 OS crash 或斷電可能丟 1 秒 |
sync_binlog1:每次寫入同步,最安全。0:交由 OS 快取,效能最好但 crash 可能丟資料。1,從庫可設 0 提升複寫效能。innodb_flush_method (Linux/Unix)fdatasync (預設):呼叫 fsync(),速度較快。O_DSYNC:呼叫 O_SYNC(),較慢。[mysqld]
long_query_time = 2 # 超過 2 秒記錄
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
log_queries_not_using_indexes = 1
log_bin_trust_function_creators授予 CREATE ROUTINE 仍報錯時,設定:
SET GLOBAL log_bin_trust_function_creators = 1;
-- 或 my.cnf 永久生效
log_bin_trust_function_creators = 1
innodb_fast_shutdown1 (預設):不刷回 insert buffer,啟動時再處理,關機快、安全。0:關機前完整刷回,耗時長,若 OS 強制殺進程可能損壞資料。innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
確保 Binlog 與 InnoDB Redo Log 一致性,避免主從資料不一致。