mysql or中有空查询慢_MySQL 慢查询日志
生活随笔
收集整理的這篇文章主要介紹了
mysql or中有空查询慢_MySQL 慢查询日志
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.定義
2.相關參數
2.開啟
3.原因
4.慢查詢日志工具mysqldumpslow
1.定義
作用:用來記錄在MySQL中響應時間超過閥值的語句。
2.相關參數
mysql>?show?variables?like?'%slow_query%';+---------------------+---------------------------------------+
|?Variable_name???????|?Value?????????????????????????????????|
+---------------------+---------------------------------------+
|?slow_query_log??????|?ON????????????????????????????????????|
|?slow_query_log_file?|?/jssdb/mysql/log/3306/jssdb-query.err?|
+---------------------+---------------------------------------+
- slow_query_log:是否開啟慢查詢日志,1表示開啟,0表示關閉
- slow_query_log_file:慢查詢日志存儲路徑
+-----------------+-----------+
|?Variable_name???|?Value?????|
+-----------------+-----------+
|?long_query_time?|?10.000000?|
+-----------------+-----------+
- long_query_time:慢查詢閾值,當查詢時間多于設定的閾值時,記錄日志
+---------------+-------+
|?Variable_name?|?Value?|
+---------------+-------+
|?log_output????|?FILE??|
+---------------+-------+
- log_output:日志存儲方式。log_output='FILE'表示將日志存入文件,默認值是'FILE'。log_output='TABLE'表示將日志存入數據庫,這樣日志信息就會被寫入到mysql.slow_log表中。MySQL數據庫支持同時兩種日志存儲方式,配置的時候以逗號隔開即可,如:log_output='FILE,TABLE'。日志記錄到系統的專用日志表中,要比記錄到文件耗費更多的系統資源,因此對于需要啟用慢查詢日志,又需要能夠獲得更高的系統性能,那么建議優先記錄到文件。
+----------------------------------------+-------+
|?Variable_name??????????????????????????|?Value?|
+----------------------------------------+-------+
|?log_queries_not_using_indexes??????????|?ON????|
|?log_throttle_queries_not_using_indexes?|?10????|
+----------------------------------------+-------+
- log_queries_not_using_indexes:當ON的時候,沒有使用索引就會記錄日志信息;當off的時候,表示如果使用了索引,就算慢,也不會記錄日志
- log_throttle_queries_not_using_indexes:設定每分鐘記錄到日志的未使用索引的語句數目,超過這個數目后只記錄語句數量和花費的總時間
2.開啟
--修改my.cnfslow_query_log?=?ON
slow_query_log_file=/jssdb/mysql/log/3306/jssdb-query.err
long_query_time=10
3.原因
- 沒有索引或者沒有用到索引
- 鎖或者死鎖
- 查詢出的數據量過大
- 網絡及硬件配置差
4.慢查詢日志工具mysqldumpslow
[root@jssdb01?~]#?mysqldumpslow?--helpUsage:?mysqldumpslow?[?OPTS...?]?[?LOGS...?]
Parse?and?summarize?the?MySQL?slow?query?log.?Options?are
??--verbose????verbose
??--debug??????debug
??--help???????write?this?text?to?standard?output
??-v???????????verbose
??-d???????????debug
??-s?ORDER?????what?to?sort?by?(al,?at,?ar,?c,?l,?r,?t),?'at'?is?default
????????????????al:?average?lock?time
????????????????ar:?average?rows?sent
????????????????at:?average?query?time
?????????????????c:?count
?????????????????l:?lock?time
?????????????????r:?rows?sent
?????????????????t:?query?time??
??-r???????????reverse?the?sort?order?(largest?last?instead?of?first)
??-t?NUM???????just?show?the?top?n?queries
??-a???????????don't?abstract?all?numbers?to?N?and?strings?to?'S'
??-n?NUM???????abstract?numbers?with?at?least?n?digits?within?names
??-g?PATTERN???grep:?only?consider?stmts?that?include?this?string
??-h?HOSTNAME??hostname?of?db?server?for?*-slow.log?filename?(can?be?wildcard),
???????????????default?is?'*',?i.e.?match?all
??-i?NAME??????name?of?server?instance?(if?using?mysql.server?startup?script)
??-l???????????don't?subtract?lock?time?from?total?time
舉例:
得到返回記錄集最多的10個SQL。mysqldumpslow?-s?r?-t?10?/jssdb/mysql/log/3306/jssdb-query.err
得到訪問次數最多的10個SQL
mysqldumpslow?-s?c?-t?10?/jssdb/mysql/log/3306/jssdb-query.err
得到按照時間排序的前10條里面含有左連接的查詢語句。
mysqldumpslow?-s?t?-t?10?-g?"left?join"?/jssdb/mysql/log/3306/jssdb-query.err
建議在使用這些命令時結合?|?和more?使用?
mysqldumpslow?-s?r?-t?20?/jssdb/mysql/log/3306/jssdb-query.err?|?more
總結
以上是生活随笔為你收集整理的mysql or中有空查询慢_MySQL 慢查询日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海带绿豆排骨汤的功效与作用、禁忌和食用方
- 下一篇: 小米大枣山药粥的功效与作用、禁忌和食用方