慢查詢日誌及分析工具

環境: ubuntu14.04    mysql5.7


    當查詢超過一定時間沒有返回結果的時候,纔會記錄慢查詢日誌

    慢查詢日誌可以找到執行效率緩慢的sql語句,爲數據庫優化做提供幫助

    慢查詢日誌默認不開啓也不必一直開啓,需要進行採樣分析時手動開啓


相關參數

        slow-querg-log=on/off
            -- 是否開啓慢查詢日誌
        slow_query_log_file=filename
            指定慢查詢日誌保存路徑及文件名,默認存放/usr/local/mysql/data/hostname-slow.log
        long_query_time=2
            -- 指定2秒後未返回結果的的查詢語句屬於慢查詢
        long-queries-not-using-indexes
            -- 記錄所有沒有使用到索引的查詢語句
        min_examined_row_limit=1000
            -- 記錄那些由於查找了多餘1000次而引發的慢查詢
        log-slow-admin-statements
            -- 記錄那些慢的OPTIMIZE TABLE,ANAKYZE TABLE和ALTER TABLE語句
        log-slow-slave-statements
            -- 記錄由slave所產生的慢查詢



一、啓動

    -參數中寫入my.cnf文件中,需重啓

    -不重啓修改慢查詢配置

        SET global.slow_query_log=1            開啓慢查詢日誌
        SET global.long_query_time=3           3秒後未返回結果的的查詢語句屬於慢查詢
        其他命令可以通過以下命令查閱
            > show variables like '%slow%';


二、慢查詢日誌分析工具

   1.mysqldumpslow

        mysql自帶分析工具,不宜看出,只做簡單統計


    2.mysqlsla

        backmysql.com 出品的分析工具

        ·下載

            官網下載或在系統提示符下下載

            # wget http://backmysql.com/scripts/mysqlsla-2.03.tar.gz

       ·解壓

            # tar zxvf mysqlsla-2.03.tar.gz                
                mysqlsla-2.03/
                mysqlsla-2.03/Changes
                mysqlsla-2.03/INSTALL
                mysqlsla-2.03/README
                mysqlsla-2.03/Makefile.PL
                mysqlsla-2.03/bin/
                mysqlsla-2.03/bin/mysqlsla
                mysqlsla-2.03/META.yml
                mysqlsla-2.03/lib/
                mysqlsla-2.03/lib/mysqlsla.pm
                mysqlsla-2.03/MANIFEST
            # cd mysqlsla-2.03/                              //進入安裝目錄//

        ·執行perl腳本檢查包依賴關係

            # perl Makefile.PL                               //配置//

         ·編譯 安裝

            # make
            # make install

        使用方法

            # mysqlsla -lt slow nengjian-slow.log
Report for slow logs: nengjian-slow.log
2 queries total, 1 unique
Sorted by 't_sum'
Grand Totals: Time 7 s, Lock 0 s, Rows sent 2, Rows Examined 0
______________________________________________________________________ 001 
Count         : 2  (100.00%)
Time          : 7.001213 s total, 3.500606 s avg, 3.000447 s to 4.000766 s max  (100.00%)
Lock Time (s) : 0 total, 0 avg, 0 to 0 max  (0.00%)
Rows sent     : 1 avg, 1 to 1 max  (100.00%)
Rows examined : 0 avg, 0 to 0 max  (0.00%)
Database      :
Users         :
        root@localhost  : 100.00% (2) of query, 100.00% (2) of all users
Query abstract:
SET timestamp=N; SELECT sleep(N);
Query sample:
SET timestamp=1464159700;
select sleep(3);


    3.percona-toolkit   (未)


        依賴包

            percona-toolkit

            perl-IO-Socket-SSL

            perl-Net-libIDN

            perl-Net-SSLesy



三、刪除慢查詢日誌

    慢查詢日誌會不斷的增長。因此只在做採樣分析這樣的特別工作時纔開啓,其他時候則是關閉的,無用的慢查詢日誌要及時刪除。

    1.關閉慢查詢日誌

        註釋掉my.cnf 配置文件中關於慢查詢日誌的參數

    2.刪除日誌文件

        # rm -f /usr/local/mysql/data/hostname-slow.log

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