婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Mysql開啟慢SQL并分析原因

Mysql開啟慢SQL并分析原因

熱門標簽:自己做地圖標注需要些什么 福建外呼電銷機器人加盟 昌德訊外呼系統 天津公司外呼系統軟件 中國地圖標注公司 電話機器人的價格多少錢一個月 徐涇鎮騰訊地圖標注 400電話申請廠家現貨 百度地圖標注要什么軟件

第一步.開啟mysql慢查詢

方式一:修改配置文件

Windows:Windows 的配置文件為 my.ini,一般在 MySQL 的安裝目錄下或者 c:\Windows 下。

Linux:Linux 的配置文件為 my.cnf ,一般在 /etc 下

在 my.ini 增加幾行:

[mysqlld] 
long_query_time=2 
#5.0、5.1等版本配置如下選項 
log-slow-queries="mysql_slow_query.log" 
#5.5及以上版本配置如下選項 
slow-query-log=On 
slow_query_log_file="mysql_slow_query.log" 
log-query-not-using-indexes 

第一句使用來定義查過多少秒的查詢算是慢查詢,我這里定義的是2秒

第二句使用來定義慢查詢日志的路徑(因為是windows,所以不牽涉權限問題)

第三句就是記錄下沒有使用索引的query

第二步:查看關于慢查詢的狀態

方式二:通過MySQL數據庫開啟慢查詢

上文的配置需要重啟mysql server進程mysqld才會生效。但是很多時候,尤其是產品運營環境,不希望每次修改都需要重新啟動mysql服務器,也希望能在某些特定時間記 錄。MySQL5.1給我們提供了更為靈活的運行時控制,使得你不必重新啟動mysql服務器,也能選擇性地記錄或者不記錄某些slow queries。

MySQL5.1中,提供了全局變量slow_query_log、slow_query_log_file可以靈活地控制enable/disable慢查詢。同時可以通過long_query_time設置時間

#//啟用slow query記錄
#注意:設置了slow_query_log全局變量, log_slow_queries也會隱性地跟著改變
mysql>set global slow_query_log=ON

不幸運的是,在MySQL5.0并沒有提供類似的全局變量來靈活控制,但是我們可以通過將long_query_time設置得足夠大來避免記錄某些查詢語句。比如

mysql>set global long_query_time = 3600;

mysql>set global log_querise_not_using_indexes = ON;

MySQL5.0, 不關服務的情況下,希望不記錄日志的辦法是將日志文件成為/dev/null的符號鏈接(symbolic link)。注意:你只需要在改變后運行FLUSH LOGS以確定MYSQL釋放當前的日志文件描述符,重新把日志記錄到/dev/null

和MySQL5.0不同,MySQL5.1可以在運行時改變日記行為,將日志記錄到數據庫表中。只要將mysql全局變量log_output設置為 TABLE即可。MySQL會將日志分別記錄到表mysql.gengera_log和mysql.slow_log二張表中。但是,我們推薦將日志記錄 在日記文件中。

mysql> show variables like ‘log_output'\G
Variable_name: log_output
Value: FILE
mysql>set global log_output='table';

缺陷與審記

雖然記錄了slow query能夠幫助你優化產品。但是MySQL目前版本,還有幾大蹩足的地方。

  • 1.MySQL5.0版本, long_query_time時間粒度不夠細,最小值為1秒。對于高并發性能的網頁腳本而言,1秒出現的意義不大。即出現1秒的查詢比較少。直到mysql5.1.21才提供更細粒度的long_query_time設定.
  • 2.不能將服務器執行的所有查詢記錄到慢速日志中。雖然MySQL普通日志記錄了所有查詢,但是它們是解析查詢之前就記錄下來了。這意味著普通日志沒辦法包含諸如執行時間,鎖表時間,檢查行數等信息。
  • 3.如果開啟了log_queries_not_using_indexes選項,slow query日志會充滿過多的垃圾日志記錄,這些快且高效的全表掃描查詢(表小)會沖掉真正有用的slow queries記錄。比如select * from category這樣的查詢也會被記錄下來。

通過microslow-patch補丁可使用更細的時間粒度,和記錄所有執行過的sql語句。不過,使用這個補訂不得不自己編譯MySQL,出于穩定性考濾,我們推薦在開發測試環境,可以打上這個補丁,享受這個補丁帶來的便利。在運營環境盡量不要這么做…

第二步.驗證慢查詢是否開啟

執行如下SQL語句來查看mysql慢查詢的狀態

執行結果會把是否開啟慢查詢、慢查詢的秒數、慢查詢日志等信息打印在屏幕上。

/*查看慢查詢時間 */ 
show variables like "long_query_time";默認10s 
/*查看慢查詢配置情況 */ 
show status like "%slow_queries%"; 
/*查看慢查詢日志路徑 */ 
 show variables like "%slow%"; 

第三步:執行一次慢查詢操作

其實想要執行一次有實際意義的慢查詢比較困難,因為在自己測試的時候,就算查詢有20萬條數據的海量表,也只需要0.幾秒。我們可以通過如下語句代替:

SELECT SLEEP(10);

第四步:查看慢查詢的數量

通過如下sql語句,來查看一共執行過幾次慢查詢:

show global status like '%slow%';

mysql日志的配置:

注意:這些日文件在mysql重啟的時候才會生成 
#記錄所有sql語句 
log=E:/mysqllog/mysql.log 
#記錄數據庫啟動關閉信息,以及運行過程中產生的錯誤信息 
log-error=E:/mysqllog/myerror.log 
# 記錄除select語句之外的所有sql語句到日志中,可以用來恢復數據文件 
log-bin=E:/mysqllog/bin 
#記錄查詢慢的sql語句 
log-slow-queries=E:/mysqllog/slow.log  
#慢查詢時間 
long_query_time=2 

第四步:分析慢查詢日志

方式一:通過工具分析

MySQL自帶了mysqldumpslow工具用來分析slow query日志,除此之外,還有一些好用的開源工具。比如MyProfi(下載地址:http://sourceforge.net/projects/myprofi/)、mysql-log-filter,當然還有mysqlsla

以下是mysqldumpslow常用參數說明,詳細的可應用mysqldumpslow -help查詢。

  • -s,是表示按照何種方式排序,c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序(從大到?。琣c、at、al、ar表示相應的倒敘。
  • -t,是top n的意思,即為返回前面多少條數據。
  • -g,后邊可以寫一個正則匹配模式,大小寫不敏感。

接下來就是用mysql自帶的慢查詢工具mysqldumpslow分析了(mysql的bin目錄下),我這里的日志文件名字是host-slow.log。

列出記錄次數最多的10個sql語句

mysqldumpslow -s c -t 10 host-slow.log

列出返回記錄集最多的10個sql語句

mysqldumpslow -s r -t 10 host-slow.log

按照時間返回前10條里面含有左連接的sql語句

mysqldumpslow -s t -t 10 -g "left join" host-slow.log

使用mysqldumpslow命令可以非常明確的得到各種我們需要的查詢語句,對MySQL查詢語句的監控、分析、優化起到非常大的幫助。

方式二:直接分析mysql慢查詢日志

日志部分內容如下:

# Time: 121017 17:38:54 
# User@Host: root[root] @ localhost [127.0.0.1] 
# Query_time: 3.794217 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 4194304 
SET timestamp=1350466734; 
select * from wei where text='orange'; 
# Time: 121017 17:46:22 
# User@Host: root[root] @ localhost [127.0.0.1] 
# Query_time: 3.819219 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 4194304 
SET timestamp=1350467182; 
select * from wei where text='xishizhaohua'; 

其實定位到了慢查詢語句就已經完成了一大不了,執行explain或者desc命令查看慢查詢語句,如下圖:

問題很明顯,解決方式也很明顯,建索引了。

mysql> create index text_index on wei(text);  
Query OK, 4194304 rows affected (1 min 58.07 sec)  
Records: 4194304 Duplicates: 0 Warnings: 0 

然后在執行查詢操作,用時明顯少了很多。

mysql> select * from wei where text='orange'; 
+---------+--------+ 
| id   | text  | 
+---------+--------+ 
| 4103519 | orange | 
+---------+--------+ 
1 row in set (0.33 sec) 

Slow Query日志,雖然幫助你記錄了那些執行過了的SQL語句。但它不是萬能的,意義可能沒有你想象的那么大。它只告訴了你哪些語句慢,但是為什么慢?具體 原因,還是需要你自己去分析,不斷的調試。也許,你只需要換一條更有效的sql語句,也許你只需簡單地增加一個索引,但也有可能你需要調整你應用程序的設 計方案。比如,上面那條語句是很明顯,它檢查了600多萬行數據。不幸的是,并不是每條語句都這么明顯。也許還有別的原因,比如:

  • *鎖表了,導致查詢處于等態狀態。lock_time顯示了查詢等待鎖被翻譯的時間
  • *數據或索引沒有被緩存。常見于第一次啟動服務器或者服務器沒有調優
  • *備份數據庫,I/O變慢
  • *也許同時運行了其它的查詢,減少了當前查詢

所以,不要過于緊張日志文件某條記錄,而應該理性地審記,找出真正的原因。如果經常出現的slow query需要特別注意。如果個別出現,則做一些常規檢查即可。我們建議,統計并且形成基準報告,進行比較排除,比胡亂瞎撞有用。希望大家不要在這部分過于浪費時間與精力。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • MySQL的一條慢SQL查詢導致整個網站宕機的解決方法
  • MySQL利用profile分析慢sql詳解(group left join效率高于子查詢)
  • MySQL慢SQL語句常見誘因以及解決方法
  • 詳細聊聊MySQL中慢SQL優化的方向

標簽:駐馬店 北京 陜西 梅河口 昌都 荊門 鄂爾多斯 黔西

巨人網絡通訊聲明:本文標題《Mysql開啟慢SQL并分析原因》,本文關鍵詞  Mysql,開啟,慢,SQL,并,分析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql開啟慢SQL并分析原因》相關的同類信息!
  • 本頁收集關于Mysql開啟慢SQL并分析原因的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产99一区视频免费| 岛国精品一区二区| 日韩专区一卡二卡| 国内久久精品视频| 色香色香欲天天天影视综合网| 在线观看不卡视频| 中日韩免费视频中文字幕| 中文字幕在线观看不卡| 亚洲一区二区在线观看视频| 久久成人麻豆午夜电影| 成人av在线资源网| 欧美日韩精品系列| 日本一区二区三级电影在线观看| 亚洲一区在线观看网站| 国产大陆亚洲精品国产| 欧美中文字幕一区| 欧美激情一区二区三区全黄| 日本最新不卡在线| 色综合婷婷久久| 久久久激情视频| 日本免费在线视频不卡一不卡二| 成人免费不卡视频| 精品国产乱码久久久久久夜甘婷婷| 中文字幕一区免费在线观看| 亚洲高清在线精品| 狠狠色狠狠色合久久伊人| fc2成人免费人成在线观看播放| 欧美精品日韩一区| 亚洲自拍偷拍麻豆| av亚洲产国偷v产偷v自拍| 日韩欧美在线影院| 亚洲最大成人网4388xx| 99国产精品久久久久久久久久久| 精品日韩av一区二区| 视频一区二区国产| 国产精品福利影院| 久久一二三国产| 国产精品久久久久毛片软件| 成人欧美一区二区三区在线播放| 一区二区三区精密机械公司| 亚洲国产精品久久人人爱蜜臀 | 亚洲精品成人在线| 综合欧美一区二区三区| 性做久久久久久久久| 国产一级精品在线| 一本一本久久a久久精品综合麻豆| 91日韩精品一区| 欧美一区二区三区在线电影| 亚洲精品一区二区三区精华液| 成人免费一区二区三区在线观看| 性做久久久久久免费观看| 国产精品中文字幕一区二区三区| 26uuu国产一区二区三区| 中文字幕一区视频| 美女国产一区二区三区| 国产精品1区2区3区在线观看| 成人精品免费看| 欧美一区二区三区白人| 亚洲欧洲另类国产综合| 日韩av中文字幕一区二区| 99综合电影在线视频| 欧美一区二区三区在线观看视频| 国产精品女同一区二区三区| 五月婷婷久久丁香| 色香蕉成人二区免费| 久久九九久精品国产免费直播| 亚洲一区在线观看网站| 成人免费毛片a| 欧美精品一区二区久久婷婷| 亚洲国产视频在线| 91麻豆精品秘密| 中文天堂在线一区| 国模少妇一区二区三区| 欧美日韩国产免费| 亚洲精品久久久久久国产精华液 | 在线欧美一区二区| 久久久久久久电影| 奇米色777欧美一区二区| 91国偷自产一区二区三区观看| 国产欧美综合色| 国产一区二区免费看| 日韩三级视频中文字幕| 免费成人在线观看| 日韩精品一区二区三区三区免费| 亚洲国产视频直播| 欧洲激情一区二区| 亚洲午夜久久久久久久久久久| 97se亚洲国产综合自在线不卡| 国产偷国产偷亚洲高清人白洁| 久久精品国产在热久久| 欧美成人vr18sexvr| 久久午夜色播影院免费高清 | 国产精品原创巨作av| 中文字幕在线播放不卡一区| 一本到不卡免费一区二区| 男人的天堂亚洲一区| 久久久国产精品麻豆| 欧美中文字幕亚洲一区二区va在线| 日韩在线卡一卡二| 一区二区视频免费在线观看| 久久嫩草精品久久久精品| 亚洲欧美日韩国产成人精品影院| 日韩一级二级三级精品视频| 色噜噜狠狠成人网p站| 国产成人在线观看免费网站| 日本不卡在线视频| 一区二区三区四区国产精品| 国产日韩精品一区| www久久精品| 91精品麻豆日日躁夜夜躁| 在线一区二区观看| 成人精品鲁一区一区二区| 国产一区二区三区免费在线观看| 亚洲成在人线免费| 亚洲国产精品精华液网站| 亚洲免费在线视频| 国产精品久久久久久久裸模| 欧美精品一区二区三区久久久| 日韩三区在线观看| 日韩欧美中文字幕精品| 欧美一区二区三区四区视频| 色婷婷香蕉在线一区二区| 成人免费视频一区| 成a人片亚洲日本久久| 高清在线观看日韩| 国产馆精品极品| 国产**成人网毛片九色| 国产成+人+日韩+欧美+亚洲| 国产一区二区三区| 国产成人免费在线观看| 国产麻豆精品在线| 丰满少妇在线播放bd日韩电影| 国产精品91一区二区| 国产99一区视频免费| 日韩av不卡在线观看| 蜜臀久久99精品久久久久久9| 日韩1区2区3区| 精品一区二区在线视频| 国产一本一道久久香蕉| 久久97超碰国产精品超碰| 亚洲成人精品在线观看| 蜜桃视频一区二区三区在线观看| 另类小说色综合网站| 国产成人99久久亚洲综合精品| 97精品视频在线观看自产线路二| 色噜噜久久综合| 日韩片之四级片| 国产精品免费免费| 亚洲成人免费在线| 6080亚洲精品一区二区| 国产大片一区二区| 欧美日韩午夜精品| 91精品国产一区二区三区 | 中文字幕一区二区三中文字幕| 一区二区三区日韩欧美精品| 国产成人日日夜夜| 欧美亚洲自拍偷拍| 一区二区三区不卡视频在线观看| 欧美日韩成人在线| 久久久久亚洲蜜桃| 精品一区二区影视| 亚洲人吸女人奶水| 久久久久久久性| 国产精品自拍毛片| 美女视频一区二区| 国产午夜精品久久久久久免费视| 日韩欧美国产精品| 日本精品一级二级| 亚洲视频在线一区二区| 国产成人免费xxxxxxxx| 91精品国产综合久久香蕉麻豆| 日本高清不卡一区| 精品国产亚洲在线| 国产乱码精品一区二区三区五月婷| 国产精品免费久久| 欧美a一区二区| 日韩欧美激情四射| 风间由美性色一区二区三区| 尤物视频一区二区| 国产精品传媒入口麻豆| 欧美性生活一区| 成人亚洲一区二区一| 亚洲国产一区二区三区| 国产精品嫩草影院com| 精品久久久久久综合日本欧美| 国产在线麻豆精品观看| 视频在线观看一区二区三区| 国产精品污污网站在线观看| 久久久久久免费网| 欧美成人伊人久久综合网| 欧美精品v日韩精品v韩国精品v| 一本一道久久a久久精品| 成人av午夜影院| 91尤物视频在线观看| 欧美性做爰猛烈叫床潮| 678五月天丁香亚洲综合网| 欧美国产综合一区二区| 亚洲最大色网站| 成人性生交大片免费看中文网站| 欧美三区在线观看|