慢查詢?nèi)罩?/em>
參數(shù)配置
- log_query_time:超過(guò)該閾值時(shí)間的查詢?yōu)槁樵儯?/li>
- log_slow_queries:可以設(shè)置為ON/OFF奏夫,表示開啟和關(guān)閉慢查詢?nèi)罩荆?/li>
- log_queries_not_using_indexes:可以設(shè)置為ON/OFF脑题,表示是否記錄未使用索引的查詢到慢查詢?nèi)罩局校?/li>
- log_throttle_queries_not_using_indexes:表示每分鐘允許記錄到慢查詢?nèi)罩镜那椅词褂盟饕牟樵兏绻龋J(rèn)為0表示沒(méi)有限制,若是沒(méi)有使用索引的查詢特別多,慢查詢?nèi)罩緯?huì)迅速膨脹,可以用該參數(shù)來(lái)進(jìn)行控制。
如何分析慢查詢?nèi)罩?/p>
mysqldumpslow ***_slow.log
若用戶需要查詢時(shí)間最長(zhǎng)的十條SQL
mysqldumpslow -s al -n 10 ***_slow.log
從MySQL5.1版本開始慢查詢?nèi)罩究梢苑湃胍粡埍碇泄槁叮ㄟ^(guò)參數(shù)log_output來(lái)設(shè)置,該參數(shù)可以設(shè)置為File和Table斤儿,file表示以文件的方式剧包,table表示以MySQL表格的形式恐锦。
二進(jìn)制文件 binlog
對(duì)MySQL數(shù)據(jù)庫(kù)執(zhí)行更改的所有操作進(jìn)行記錄
作用:1)恢復(fù) 2)復(fù)制 3)審計(jì)
參數(shù)配置
- log_bin:開啟binlog并指定文件目錄;
- max_binlog_size:?jiǎn)蝹€(gè)二進(jìn)制文件的大小限制疆液;
- binlog_cache_size中:事務(wù)未提交一铅,二進(jìn)制日志被記錄到緩沖中,該緩沖大小由該參數(shù)決定堕油,如果設(shè)置的太小潘飘,日志文件大小超過(guò)該值,會(huì)把日志文件寫入臨時(shí)文件中掉缺,涉及到磁盤IO影響性能卜录;
- sync_binlog:sync_log[=N],表示每寫N次日志就同步到磁盤眶明,默認(rèn)為1艰毒;
- binlog_do_db:需要寫入哪些庫(kù)的二進(jìn)制日志文件;
- binlog_ignore_db:需要忽略哪些庫(kù)的二進(jìn)制日志文件搜囱;
- log_slave_update:slave角色是否需要同步master的日志文件丑瞧,若需要必須將參數(shù)設(shè)置為ON;
- binlog_format:二進(jìn)制文日志文件的格式蜀肘,默認(rèn)為Statement绊汹,可選項(xiàng)項(xiàng)還包括row和mixed;
- innodb_support_xa:設(shè)置為1解決二進(jìn)制文件和InnoDB存儲(chǔ)引擎數(shù)據(jù)文件的同步幌缝。
如何查看二進(jìn)制文件:
mysqlbinlog -vv --start-position=**** ***.0001
重做日志文件
默認(rèn)情況下灸促,數(shù)據(jù)目錄下會(huì)有兩個(gè)名為ib_logfile0和ib_logfile1的文件诫欠,就是重做日志文件涵卵,重做日志組默認(rèn)包含兩個(gè)日志文件,先寫日志文件1荒叼,文件1寫滿之后轿偎,切換到日志文件2,文件2寫滿之后被廓,又切換回日志1坏晦。
配置參數(shù)
- innodb_log_file_size:指定每個(gè)重做日志文件的大小,最大為512GB嫁乘;
- innodb_log_files_in_group:日志文件組中重做日志文件的數(shù)量昆婿,默認(rèn)為2;
- innodb_mirrored_log_groups:日志鏡像文件組的數(shù)量蜓斧,默認(rèn)為1仓蛆;
- innodb_log_group_home_dir:日志文件的路徑;
- innodb_flush_log_at_trx_commit:控制提交操作時(shí)處理重做日志的方式挎春,有效值為0看疙,1豆拨,2,0表示等待主線程刷新磁盤能庆,1表示每次事務(wù)提交都將重做日志寫入文件中施禾,2表示將刷新磁盤的時(shí)機(jī)交給操作系統(tǒng),三種方式對(duì)應(yīng)不同的級(jí)別的持久性搁胆。