qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          MySQL日志文件——慢查詢日志

           顧名思義,慢查詢日志中記錄的是執行時間較長的 query

            可以設一個閥值、將運行時間超過該值的所有SQL語句都記錄到慢查詢日志文件中

            該閥值可以通過參數long_query_time來設置、默認是10秒

            這里需要一點、對于運行時間正好等于long_query_time的情況、并不會被記錄

            因為、在源代碼里是判斷大于long_query_time、而非大于等于

          mysql> show variables like 'log_slow_queries';
          +------------------+-------+
          | Variable_name    | Value |
          +------------------+-------+
          | log_slow_queries | ON    |
          +------------------+-------+
          1 row in set (0.00 sec)

          mysql> show variables like 'long_query_time';
          +-----------------+-----------+
          | Variable_name   | Value     |
          +-----------------+-----------+
          | long_query_time | 10.000000 |
          +-----------------+-----------+
          1 row in set (0.00 sec)

            另一個和慢查詢日志相關的參數是log_queries_not_using_indexes

            如果運行的SQL沒有使用索引、則MySQL同樣會將這條語句記錄到慢查詢日志文件

          mysql> show variables like 'log_queries_not_using_indexes';
          +-------------------------------+-------+
          | Variable_name                 | Value |
          +-------------------------------+-------+
          | log_queries_not_using_indexes | OFF   |
          +-------------------------------+-------+
          1 row in set (0.00 sec)

            在這里、我沒有開啟、但有點需要提醒、如果在線修改該參數、雖然沒有報錯、但是不會生效

            MySQL 還提供了專門用來分析滿查詢日志的工具程序 mysqldumpslow、用來幫助MySQL DBA解決可能存在的性能問題

            例子、獲得 TOP-5 SQL語句:

          [mysql@localhost bin]$ ./mysqldumpslow -s al -n 5 /home/mysql/mysql/log/slow.log

          Reading mysql slow query log from /home/mysql/mysql/log/slow.log
          Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), 0users@0hosts



          更多用法、請咨詢 ./mysqldumpslow --help

            從5.1.6版本開始,慢查詢日志即可以是個文件,也可以保存在數據庫中的指定表

            參數log_output指定了慢查詢輸出的格式、默認為file、你也可以將它設為table

            參數log_output是動態的、并且是全局的、我們能夠在線進行變更

          mysql> show variables like 'log_output';
          +---------------+-------+
          | Variable_name | Value |
          +---------------+-------+
          | log_output    | FILE  |
          +---------------+-------+
          1 row in set (0.00 sec)

          mysql> set global log_output='TABLE';
          Query OK, 0 rows affected (0.00 sec)

          mysql> show variables like 'log_output';
          +---------------+-------+
          | Variable_name | Value |
          +---------------+-------+
          | log_output    | TABLE |
          +---------------+-------+
          1 row in set (0.00 sec)

          mysql> select sleep(15);
          +-----------+
          | sleep(15) |
          +-----------+
          |         0 |
          +-----------+
          1 row in set (15.02 sec)

          mysql> select * from mysql.slow_log\G;
          *************************** 1. row ***************************
              start_time: 2013-04-14 01:22:29
               user_host: root[root] @ localhost []
              query_time: 00:00:15
               lock_time: 00:00:00
               rows_sent: 1
           rows_examined: 0
                      db: test
          last_insert_id: 0
               insert_id: 0
               server_id: 1
                sql_text: select sleep(15)
          1 row in set (0.00 sec)

            在這個例子里、我設置了睡眠15秒、那么這句SQL就會被記錄到slow_log表

            需要注意的是,慢查詢日志中有可能記錄到與用戶權限或密碼相關的語句,因此慢查詢日志文件的保存也要注意安全

          posted on 2013-05-08 09:58 順其自然EVO 閱讀(273) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2013年5月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新河县| 大厂| 日照市| 北宁市| 台东县| 潍坊市| 富平县| 碌曲县| 咸宁市| 巴南区| 资中县| 渭源县| 纳雍县| 隆子县| 柳州市| 昭平县| 万安县| 如东县| 洛南县| 于都县| 临湘市| 饶阳县| 子长县| 屏南县| 二手房| 汤阴县| 贵南县| 黑山县| 百色市| 格尔木市| 天等县| 宁夏| 巫山县| 曲沃县| 宁海县| 新宁县| 兴山县| 班戈县| 屏山县| 旺苍县| 潜江市|