數據庫配置操作集錦

隔離級別

  • 查看當前事務隔離級別

    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
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章