自從mysql把innodb設(shè)置成默認的存儲引擎糠雨,myIsam就失去了大眾的寵愛削葱,至于innodb和myIsam的區(qū)別和應(yīng)用場景請自行百度永淌,這里簡單說一下Innodb存儲引擎的相關(guān)配置參數(shù)
Innodb儲引擎
Innodb_log_buffer_size 控制事務(wù)緩沖區(qū)的大小,這個一般無需更改佩耳,因為事務(wù)緩存更新到日志文件中頻率是很快的,但是過快也會影響性能谭跨。
Innodb_flush_log_at_trx_commit 控制事務(wù)緩沖區(qū)更新到文件的頻率干厚,參數(shù)為0 ,1 螃宙,2
0每秒記錄一次事務(wù)寫入緩存蛮瞄,并更新到log文件中
1 也是mysql默認值,每次事務(wù)提交執(zhí)行l(wèi)og寫入緩存中谆扎,并更新到文件挂捅,性能弱。
2 每次事務(wù)提交堂湖,執(zhí)行l(wèi)og數(shù)據(jù)寫入到緩存闲先,每秒執(zhí)行一次更新到文件中,建議為2无蜂,這樣就算服務(wù)器突然宕機伺糠,事務(wù)還是能找回來,并且性能影響最小斥季。
Innodb_log_file_size 控制單個事務(wù)日志大小训桶,事務(wù)的原理就是把操作寫入事務(wù)日志中,一但事務(wù)完成酣倾,sql操作就會更新到文件中舵揭,反之則不然。
Innodb_log_files_in_group 控制事務(wù)文件的個數(shù)
Innodb_file_per_table 控制innodb如何使用表空間躁锡,強烈建議默認為1 每個表單獨一個表空間午绳,就是每張表都有自己的單獨文件,有利于讀寫io和磁盤管理
innodb_doublewrite innodb雙寫緩存默認為1開啟稚铣,innodb一個磁盤頁為16k箱叁,當一個頁沒有寫完整的時候突然宕機退出墅垮,不完整的數(shù)據(jù)會造成磁盤損壞,開啟后將避免此情況出現(xiàn)耕漱,消耗性能很小算色。
mysql參數(shù)設(shè)置
expire_logs_days 指定自動清理binlog的天數(shù)
max_allowed_packet 控制mysql可以接收的包的大小,有主從復(fù)制的要注意的了從庫一定要大于等于主庫螟够,否則可能會同步失敗灾梦。
skip_name_resolve 禁用DNS查找,如果你的mysql各項配置都沒有問題妓笙,遠程權(quán)限也開啟了若河,但還是丟失鏈接,可以看看該配置項是否開啟寞宫,如果開啟了萧福,關(guān)閉該設(shè)置
sysdate_is_now 確保sysdate()返回確定性日期,如果開啟主從復(fù)制一定要開啟辈赋,不然鲫忍,一旦主從復(fù)制中斷,可能就續(xù)不上了哦
sync_binlog 控制mysql如何向磁盤刷新binlog 就是(二進制日志)钥屈,主從復(fù)制悟民,主機要開啟,防止主機宕機后篷就,主從數(shù)據(jù)不一樣射亏,無法繼續(xù)同步。
tmp_table_size 和max_heap_table_size 控制內(nèi)存臨時表大小竭业。
max_connec
這些設(shè)置不要在生產(chǎn)環(huán)境下隨意更改智润,一定要開發(fā)環(huán)境下測試。