隔離級別
-
查看當前事務隔離級別
select @@tx_isolation;
-
設置隔離級別
set transaction isolation level +隔離級別 //設置read uncommitted級別: set session transaction isolation level read uncommitted; //設置read committed級別: set session transaction isolation level read committed; //設置repeatable read級別: set session transaction isolation level repeatable read; //設置serializable級別: set session transaction isolation level serializable;
慢日誌
-
查看慢日誌
show variables like '%qurey%' long_query_time:查詢超時時間(超過這個時間就是慢查詢,可以自己設置) 默認是 10毫秒 slow_query_log:慢日誌功能開關 slow_query_log_file:慢日誌存放文件,自己設置(支持.log文件)
-
開啓慢日誌
set global slow_qurey_log = "ON";
-
慢日誌輸出查看
show variables like '%log_output%';
og_output
參數是指定日誌的存儲方式。log_output='FILE'
表示將日誌存入文件,默認值是’FILE’。log_output='TABLE'
表示將日誌存入數據庫,這樣日誌信息就會被寫入到mysql.slow_log表中。MySQL數據庫支持同時兩種日誌存儲方式,配置的時候以逗號隔開即可,如:log_output='FILE,TABLE'
。日誌記錄到系統的專用日誌表中,要比記錄到文件耗費更多的系統資源,因此對於需要啓用慢查詢日誌,又需要能夠獲得更高的系統性能,那麼建議優先記錄到文件
。 -
查看錶裏慢日誌
select * from mysql.slow_log;
-
日誌分析工具
mysqldumpslow
#得到返回記錄集最多的10個SQL。 mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log #得到訪問次數最多的10個SQL mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log #得到按照時間排序的前10條裏面含有左連接的查詢語句。 mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log #另外建議在使用這些命令時結合 | 和more 使用 ,否則有可能出現刷屏的情況。 mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more
BinLog日誌的三種模式
-
Statement level優點:
1、解決了row level的缺點,不需要記錄每一行的變化。
2、日誌量少,節約IO,從庫應用日誌塊。 -
Statement level缺點
一些新功能同步可能會有障礙,比如函數、觸發器等。
-
row level的優點:
1、記錄詳細
2、解決statement level模式無法解決的複製問題。(某些特定情況下的存儲過程,或fuction,以及trigger的調用或處罰無法被正確複製的問題。) -
row level的缺點
日誌量大,因爲是按行來拆分。
-
mixed level:
實際上就是前兩種模式的結合,在mixed模式下,mysql會根據執行的每一條具體的sql語句來區分對待記錄的日誌形式,也是在statement和row之間選擇一種
-
查看當前binlog日誌模式 默認-
Row
show variables like '%binlog_format%';
-
設置binlog的模式
set global binlog_format='MIXED';
-
讀取binlog日誌
mysqlbinlog --base64-output=decode-rows -v mysql-bin.000011