mysql or中有空查询慢_MySQL 慢查询日志
生活随笔
收集整理的這篇文章主要介紹了
mysql or中有空查询慢_MySQL 慢查询日志
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.定義
2.相關(guān)參數(shù)
2.開啟
3.原因
4.慢查詢?nèi)罩竟ぞ適ysqldumpslow
1.定義
作用:用來記錄在MySQL中響應(yīng)時(shí)間超過閥值的語句。
2.相關(guān)參數(shù)
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:是否開啟慢查詢?nèi)罩?#xff0c;1表示開啟,0表示關(guān)閉
- slow_query_log_file:慢查詢?nèi)罩敬鎯?chǔ)路徑
+-----------------+-----------+
|?Variable_name???|?Value?????|
+-----------------+-----------+
|?long_query_time?|?10.000000?|
+-----------------+-----------+
- long_query_time:慢查詢閾值,當(dāng)查詢時(shí)間多于設(shè)定的閾值時(shí),記錄日志
+---------------+-------+
|?Variable_name?|?Value?|
+---------------+-------+
|?log_output????|?FILE??|
+---------------+-------+
- log_output:日志存儲(chǔ)方式。log_output='FILE'表示將日志存入文件,默認(rèn)值是'FILE'。log_output='TABLE'表示將日志存入數(shù)據(jù)庫(kù),這樣日志信息就會(huì)被寫入到mysql.slow_log表中。MySQL數(shù)據(jù)庫(kù)支持同時(shí)兩種日志存儲(chǔ)方式,配置的時(shí)候以逗號(hào)隔開即可,如:log_output='FILE,TABLE'。日志記錄到系統(tǒng)的專用日志表中,要比記錄到文件耗費(fèi)更多的系統(tǒng)資源,因此對(duì)于需要啟用慢查詢?nèi)罩?#xff0c;又需要能夠獲得更高的系統(tǒng)性能,那么建議優(yōu)先記錄到文件。
+----------------------------------------+-------+
|?Variable_name??????????????????????????|?Value?|
+----------------------------------------+-------+
|?log_queries_not_using_indexes??????????|?ON????|
|?log_throttle_queries_not_using_indexes?|?10????|
+----------------------------------------+-------+
- log_queries_not_using_indexes:當(dāng)ON的時(shí)候,沒有使用索引就會(huì)記錄日志信息;當(dāng)off的時(shí)候,表示如果使用了索引,就算慢,也不會(huì)記錄日志
- log_throttle_queries_not_using_indexes:設(shè)定每分鐘記錄到日志的未使用索引的語句數(shù)目,超過這個(gè)數(shù)目后只記錄語句數(shù)量和花費(fèi)的總時(shí)間
2.開啟
--修改my.cnfslow_query_log?=?ON
slow_query_log_file=/jssdb/mysql/log/3306/jssdb-query.err
long_query_time=10
3.原因
- 沒有索引或者沒有用到索引
- 鎖或者死鎖
- 查詢出的數(shù)據(jù)量過大
- 網(wǎng)絡(luò)及硬件配置差
4.慢查詢?nèi)罩竟ぞ適ysqldumpslow
[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個(gè)SQL。mysqldumpslow?-s?r?-t?10?/jssdb/mysql/log/3306/jssdb-query.err
得到訪問次數(shù)最多的10個(gè)SQL
mysqldumpslow?-s?c?-t?10?/jssdb/mysql/log/3306/jssdb-query.err
得到按照時(shí)間排序的前10條里面含有左連接的查詢語句。
mysqldumpslow?-s?t?-t?10?-g?"left?join"?/jssdb/mysql/log/3306/jssdb-query.err
建議在使用這些命令時(shí)結(jié)合?|?和more?使用?
mysqldumpslow?-s?r?-t?20?/jssdb/mysql/log/3306/jssdb-query.err?|?more
總結(jié)
以上是生活随笔為你收集整理的mysql or中有空查询慢_MySQL 慢查询日志的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海带绿豆排骨汤的功效与作用、禁忌和食用方
- 下一篇: mysql 中如何删除重复的数据_mys