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 閱讀(272) 評論(0)  編輯  收藏 所屬分類: 數據庫

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 滦南县| 石棉县| 榆中县| 吉隆县| 元谋县| 沙坪坝区| 惠安县| 布拖县| 大名县| 安徽省| 锡林郭勒盟| 陵川县| 犍为县| 东乡县| 黔西县| 洛阳市| 类乌齐县| 桂阳县| 丽江市| 东至县| 江陵县| 上饶县| 宜兰县| 威宁| 安顺市| 舒兰市| 霸州市| 怀柔区| 府谷县| 全州县| 钟祥市| 建水县| 呼伦贝尔市| 建阳市| 平武县| 黔南| 西藏| 宝鸡市| 林芝县| 清镇市| 黄梅县|