default_storage_engine=innodb
儲存引擎設定引數
innodb_file_per_table=1
預設獨立表空間模式
innodb_data_file_path=ibdata1:512m:ibdata2:512m:autoextend
共享表空間檔案個數跟大小配置
innodb_flush_log_at_trx_commit=1
控制redo刷寫方式的引數
"雙一"標準其中之一,預設為1
引數為1時,表示控制redo在事務提交時將資料從mysql使用的記憶體中立即寫入到os buffer記憶體再刷寫到硬碟上
引數為0時,表示redo按每秒將資料寫入os buffer記憶體,然後再將事務刷寫到硬碟上,追求效能時使用,但如果死機會丟失一秒內的資料
引數為2時,表示redo在事務提交時立即寫入os buffer記憶體,然後按每秒將事務刷寫到硬碟上
作用:控制redo buffer跟buffer pool的刷寫策略
預設fsync模式,資料都會先刷寫到os buffer再寫入硬碟
o_direct模式(建議使用,資料直接寫入硬碟會較安全),buffer pool直接將資料寫入硬碟,redo不變
o_dsync模式寫入方式如下
最高安全模式
innodb_flush_log_at_trx_commit=1
innodb_flush_method=o_direct
最高效能模式,可能會丟資料
innodb_flush_log_at_trx_commit=0
innodb_flush_method=fsync
redo日誌設定引數
innodb_log_buffer_size=16777216 #日誌緩衝區大小
innodb_log_file_size=50331648 #日誌檔案大小,預設50m
innodb_log_files_in_group = 3 #redo日誌檔案個數,預設2個
髒頁刷寫策略引數
控制髒頁記憶體大小比例,如髒頁占用記憶體75%時會觸發寫入到硬碟,調小會更快的將資料寫入到硬碟
當redo兩個日誌檔案滿了,也會立即將髒頁寫入到硬碟從而重新整理redo空間
csr(前滾故障恢復),mysql斷電後重啟對照lsn號通過讀取redo日誌內容重建buffer pool再將髒頁寫入硬碟
學習來自:老男孩深標dba課程 第五章 儲存引擎-2
InnoDB相關引數
innodb相關引數 innodb additional mem pool size 3m innodb用於儲存元資料資訊的記憶體池大小,一般不需修改 innodb flush log at trx commit 1 事務相關引數,如果值為1,則innodb在每次commit都會將事務日誌寫入磁碟 ...
innodb幾個引數
innodb flush method 該引數控制著如何重新整理資料到資料檔案 日誌檔案,該引數影響io吞吐。在類unix中如果這個引數沒有配置,那麼預設是fsync被使用。在類unix系統中,有下面的設定 fysnc 使用fsync 系統函式重新整理資料 o dsync innodb使用o syn...
innodb的引數設定
innodb flush log at trx commit 主要控制了innodb 將 log buffer 中的資料寫入日誌檔案並 flush 磁碟的時間點,取值分別為 0 1 2 三個。0 表示當事務提交時,不做日誌寫入操作,而是每秒鐘將 log buffer 中的資料寫入日誌檔案並 flus...