亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

Mysql慢查詢操作梳理總結

2024-07-24 13:12:45
字體:
來源:轉載
供稿:網友

Mysql慢查詢解釋

MySQL的慢查詢日志是MySQL提供的一種日志記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指運行時間超過long_query_time值的SQL,則會被記錄到慢查詢日志中。long_query_time的默認值為10,意思是運行10S以上的語句。默認情況下,Mysql數據庫并不啟動慢查詢日志,需要我們手動來設置這個參數,當然,如果不是調優需要的話,一般不建議啟動該參數,因為開啟慢查詢日志會或多或少帶來一定的性能影響。慢查詢日志支持將日志記錄寫入文件,也支持將日志記錄寫入數據庫表;慢查詢日志用于記錄一些過慢的查詢語句,可以幫助管理員分析問題所在,該日志默認是沒有開啟的,需要在配置文件里添加一系列參數來手動啟動

開啟Mysql慢查詢的理由

數據庫是很容易產生瓶頸的地方,現在Nosql大家討論這么熱,估計都被數據庫搞郁悶了。MySQL中最影響速度的就是那些查詢非常慢的語句,這些慢的語句,可能是寫的不夠合理或者是大數據下多表的聯合查詢等等,所以我們要找出這些語句,分析原因,加以優化。這也是發這篇博文的原因

開啟mysql慢查詢方法

1)方法一、登陸mysql數據庫終端里開啟

mysql> show variables like "%long%";    <SPAN style="COLOR: #ff00ff"> //查看一下默認為慢查詢的時間10秒 </SPAN> +-----------------+-----------+  | Variable_name  | Value   |  +-----------------+-----------+  | long_query_time | 10.000000 |  +-----------------+-----------+  1 row in set (0.00 sec)    mysql> set global long_query_time=1;     <SPAN style="COLOR: #ff00ff">//設置成1秒,加上global,下次進mysql已然生效</SPAN>  Query OK, 0 rows affected (0.00 sec)   mysql> show variables like "%slow%";     <SPAN style="COLOR: #ff00ff"> //查看一下慢查詢是不是已經開啟 </SPAN> +---------------------+---------------------------------+  | Variable_name    | Value              |  +---------------------+---------------------------------+  | log_slow_queries  | OFF               |  | slow_launch_time  | 2                |  | slow_query_log   | OFF               |  | slow_query_log_file | /usr/local/mysql/mysql-slow.log |  +---------------------+---------------------------------+  4 rows in set (0.00 sec)    mysql> set slow_query_log='ON';          <SPAN style="COLOR: #ff00ff"> //加上global,不然會報錯的</SPAN> ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL mysql> set global slow_query_log='ON';      <SPAN style="COLOR: #ff00ff">//這個參數設置為ON,表示啟用慢查詢,可以捕獲執行時間超過一定數值的SQL語句。</SPAN> Query OK, 0 rows affected (0.28 sec)    mysql> show variables like "%slow%";       <SPAN style="COLOR: #ff00ff">//查看是否已經開啟 </SPAN> +---------------------+---------------------------------+  | Variable_name    | Value              |  +---------------------+---------------------------------+  | log_slow_queries  | ON               |  | slow_launch_time  | 2                |  | slow_query_log   | ON               |  | slow_query_log_file | /usr/local/mysql/mysql-slow.log |  +---------------------+---------------------------------+  4 rows in set (0.00 sec)

方法2、修改mysql的配置文件my.cnf

[root@www ~]# vim /etc/mysql.cnf
在[mysqld]區域配置里添加下面內容
......

slow_query_log = 1      //開啟慢查詢日志,將1改為ON也可以
long_query_time = 1      //mysql慢查詢時間,指定達到多少秒才算慢查詢;這里推薦設置超過1秒的執行語句就會被記錄到慢查詢日志中
slow_query_log_file= /var/lib/mysql/mysql-slow.log     //慢查詢日志路徑。這里slow_query_log_file修改為log-slow-queries 也可以
//主要是上面三行內容,還可以添加下面幾行細節性配置
long-queries-not-using-indexes     //記錄沒有使用索引的查詢語句
min_examined_row_limit = 1000     //記錄查找了多達1000次而引起的慢查詢
log-slow-admin-statements       //記錄ALTER TABLE等語句引發的慢查詢
log-slow-slave-statements        //記錄從服務器產生的慢查詢

分析工具

分析工具其實就是把mysql-slow.log里面記錄下來的數據,分析一下顯示出來(其實自己寫一個shell腳本也是可以把要的信息取出來的)。

[root@www ~]# cat mysql-slow.log              //查看命令

/usr/local/mysql/libexec/mysqld, Version: 5.1.26-rc-log (Source distribution). started with:  Tcp port: 3306 Unix socket: /tmp/mysql.sock  Time         Id Command  Argument  # Time: 100814 13:28:30  # User@Host: root[root] @ localhost []  # Query_time: 10.096500 Lock_time: 0.045791 Rows_sent: 1 Rows_examined: 2374192  SET timestamp=1281763710;  select count(distinct ad_code) as x from ad_visit_history where ad_code in (select ad_code from ad_list where media_id=15);  # Time: 100814 13:37:02  # User@Host: root[root] @ localhost []  # Query_time: 10.394134 Lock_time: 0.000091 Rows_sent: 1 Rows_examined: 2374192  SET timestamp=1281764222;  select count(distinct ad_code) as x from ad_visit_history where ad_code in (select ad_code from ad_list where media_id=15);  # Time: 100814 13:37:16  # User@Host: root[root] @ localhost []  # Query_time: 4.608920 Lock_time: 0.000078 Rows_sent: 1 Rows_examined: 1260544  SET timestamp=1281764236;  select count(*) as cou from ad_visit_history where ad_code in (select ad_code from ad_list where id=41) order by id desc;

看到了,就是記錄一下sql語句的執行情況,包括執行時間,鎖定時間等,所以要不要分析工具看個人情況,分析工具很多,在這兒只說一下mysql自帶的慢查詢分析工具mysqldumpslow的使用方法。

[root@www ~]# mysqldumpslow -h  

Option h requires an argument  ERROR: bad option   Usage: 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 (t, at, l, al, r, ar etc), 'at' is default   //排序方式query次數,時間,lock的時間和返回的記錄數來排序   -r      reverse the sort order (largest last instead of first)    //倒排序   -t NUM    just show the top n queries                    //顯示前N多個   -a      don't abstract all numbers to N and strings to 'S'  -n NUM    abstract numbers with at least n digits within names  //抽象的數字,至 少有n位內的名稱  -g PATTERN  grep: only consider stmts that include this string   //配置模式  -h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),   //mysql所以機器名或者IP  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      //總時間中不減去鎖定時間

實例:

[root@BlackGhost bin]# ./mysqldumpslow -s r -t 20 /var/lib/mysql/mysql-slow.log

[root@BlackGhost bin]# ./mysqldumpslow -s r -t 20 -g 'count' /var/lib/mysql/mysql-slow.log

以上這篇Mysql慢查詢操作梳理總結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文在线中文网在线观看| 精品国内产的精品视频在线观看| 亚洲图片在区色| 日韩在线免费视频| 日韩精品在线视频观看| 久久精品国产亚洲精品| 欧美日韩国产限制| 久久视频在线直播| 国产精品电影网| 亚洲国产精品久久久| 亲爱的老师9免费观看全集电视剧| 欧美大片在线看免费观看| 亚洲精品永久免费精品| 亚洲精品一区二区网址| 日本最新高清不卡中文字幕| 亚洲最新av网址| 久久天天躁狠狠躁老女人| 日韩国产高清污视频在线观看| 欧美电影免费观看网站| 不卡伊人av在线播放| 欧美激情亚洲国产| 综合网中文字幕| 欧美日韩亚洲网| 久久综合国产精品台湾中文娱乐网| 午夜精品久久久久久久久久久久| 大胆欧美人体视频| 亚洲人成电影在线观看天堂色| 欧美激情视频给我| 国产成人av网| 另类美女黄大片| 国产日韩在线看片| 成人网页在线免费观看| 亚洲成av人影院在线观看| 亚洲人高潮女人毛茸茸| 久久激情视频久久| 国产欧美在线播放| 全色精品综合影院| 午夜美女久久久久爽久久| 国产精品丝袜高跟| 国产精品电影在线观看| 国产一区二区色| 91精品国产免费久久久久久| 亚洲午夜激情免费视频| 久久影院模特热| 国产精品对白刺激| 九九热在线精品视频| 美女撒尿一区二区三区| 欧美国产亚洲视频| 在线观看国产精品日韩av| 日韩免费电影在线观看| xvideos国产精品| 亚洲欧美国产精品久久久久久久| 北条麻妃在线一区二区| 日本一本a高清免费不卡| 亚洲三级免费看| 91精品一区二区| 欧美精品久久久久| 国产精品久久久久久久久借妻| 久久久久久久色| 欧美激情在线一区| 日韩一区二区三区xxxx| 久久天天躁狠狠躁夜夜躁2014| 欧美日在线观看| 日韩性xxxx爱| 色综合天天狠天天透天天伊人| 日韩中文字幕视频| 亚洲国内高清视频| 九九热精品视频国产| 国产精品黄视频| 成人黄色免费看| 98精品国产高清在线xxxx天堂| 国产精品美女在线观看| 中日韩美女免费视频网站在线观看| 97视频国产在线| 亚洲第一福利网站| 日韩视频中文字幕| 国外成人性视频| 日韩在线视频国产| 日韩高清免费在线| 久久精品视频va| 久久久国产精彩视频美女艺术照福利| 日韩av片永久免费网站| 97视频com| 97视频在线观看免费高清完整版在线观看| 欧美多人爱爱视频网站| 奇米四色中文综合久久| 欧美视频在线视频| 中文字幕亚洲欧美日韩在线不卡| 操人视频在线观看欧美| 中文字幕久热精品视频在线| 亚洲丝袜av一区| 国精产品一区一区三区有限在线| 揄拍成人国产精品视频| 日本午夜精品理论片a级appf发布| 国产精品白丝av嫩草影院| 亚洲国产精彩中文乱码av| 欧美精品电影在线| 久久99久久亚洲国产| 久久中文字幕国产| 日韩一区二区三区xxxx| 亚洲欧美国产制服动漫| 精品高清美女精品国产区| 欧美中文字幕在线视频| 欧美性猛xxx| 亚洲精品一区中文字幕乱码| 韩国精品久久久999| 欧美乱大交做爰xxxⅹ性3| 77777亚洲午夜久久多人| 国产精品88a∨| 欧美成人性生活| 国产网站欧美日韩免费精品在线观看| 国产成人精品亚洲精品| 欧美激情精品久久久久| 国产精品视频白浆免费视频| 欧美日韩免费看| 日韩精品视频免费专区在线播放| 欧美精品在线观看91| 中文字幕精品一区久久久久| 国产成人久久久精品一区| 九九热精品在线| 色无极亚洲影院| 日韩av理论片| 亚洲999一在线观看www| 国产乱肥老妇国产一区二| 国产一区二区在线免费视频| 91亚洲国产精品| 久久精品小视频| 亚洲精品91美女久久久久久久| 国内精品视频在线| 日产精品久久久一区二区福利| 在线视频日本亚洲性| 激情av一区二区| 欧美一区二粉嫩精品国产一线天| 韩剧1988免费观看全集| 日韩少妇与小伙激情| 欧美激情成人在线视频| 国内伊人久久久久久网站视频| 在线播放精品一区二区三区| 亚洲精品一区二三区不卡| 国产91久久婷婷一区二区| 日韩av中文字幕在线| 国产精品高潮呻吟久久av无限| 欧美极品少妇xxxxⅹ免费视频| 精品亚洲国产成av人片传媒| 国产精品2018| 九九热这里只有精品免费看| 日本中文字幕久久看| 亚洲影院高清在线| 中文字幕免费国产精品| 欧美日本中文字幕| 在线观看国产欧美| 国产成人综合亚洲| 欧美国产日韩精品| 国产日韩精品电影| 成人黄色片网站| 热门国产精品亚洲第一区在线| 亚洲护士老师的毛茸茸最新章节| 69视频在线免费观看| 欧美理论电影网| 亚洲新中文字幕| 欧美制服第一页| 欧美日本中文字幕| 性欧美激情精品| 黄色成人在线播放|