成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL優化:使用慢查詢日志定位效率較低的SQL語句

數據庫 MySQL
MySQL通過慢查詢日志定位執行效率較低的SQL語句,當慢查詢日志的內容過多時,通過mysqldumpslow工具(MySQL客戶端安裝自帶)來對慢查詢日志進行分類匯總。

MySQL通過慢查詢日志定位那些執行效率較低的SQL 語句,用--log-slow-queries[=file_name]選項啟動時,mysqld 會寫一個包含所有執行時間超過long_query_time 秒的SQL語句的日志文件,通過查看這個日志文件定位效率較低的SQL 。

慢查詢日志在查詢結束以后才記錄,所以在應用反映執行效率出現問題的時候查詢慢查詢日志并不能定位問題,可以使用show processlist命令查看當前MySQL在進行的線程,包括線程的狀態、是否鎖表等,可以實時地查看SQL 的執行情況,同時對一些鎖表操作進行優化。

下面我們舉例說明一下,如何通過慢查詢日志定位執行效率低的SQL 語句:

開啟慢查詢日志,配置樣例:

  1. [mysqld]  
  2.  
  3. log-slow-queries 

在my.cnf 配置文件中增加上述配置項并重啟mysql服務,這時mysql慢查詢功能生效。慢查詢日志將寫入參數DATADIR(數據目錄)指定的路徑下,默認文件名是host_name-slow.log 。

和錯誤日志、查詢日志一樣,慢查詢日志記錄的格式也是純文本,可以被直接讀取。下例中演示了慢查詢日志的設置和讀取過程。

首先查詢一下 long_query_time 的值 。

  1. mysql> show variables like 'long%';  
  2.  
  3. +-----------------+-------+  
  4.  
  5. | Variable_name | Value |  
  6.  
  7. +-----------------+-------+  
  8.  
  9. | long_query_time | 10 |  
  10.  
  11. +-----------------+-------+  
  12.  
  13. 1 row in set (0.00 sec) 

為了方便測試,將修改慢查詢時間為5秒。

  1. mysql> set long_query_time=5;  
  2.  
  3. Query OK, 0 rows affected (0.02 sec) 

依次執行下面兩個查詢語句。

第一個查詢因為查詢時間低于5 秒而不會出現在慢查詢日志中:

  1. mysql> select count(*) from order2008;  
  2.  
  3. +----------+  
  4.  
  5. | count(*) |  
  6.  
  7. +----------+  
  8.  
  9. | 208 |  
  10.  
  11. +----------+  
  12.  
  13. 1 row in set (0.00 sec) 

第二個查詢因為查詢時間大于5 秒而應該出現在慢查詢日志中:

  1. mysql> select count(*) from t_user;  
  2.  
  3. +----------+  
  4.  
  5. | count(*) |  
  6.  
  7. +----------+  
  8.  
  9. | 6552961 | 

查看慢查詢日志。

  1. [root@localhost mysql]# more localhost-slow.log  
  2.  
  3. # Time: 081026 19:46:34  
  4.  
  5. # User@Host: root[root] @ localhost []  
  6.  
  7. # Query_time: 11 Lock_time: 0 Rows_sent: 1 Rows_examined: 6552961  
  8.  
  9. select count(*) from t_user; 

從上面日志中,可以發現查詢時間超過5 秒的SQL,而小于5秒的則沒有出現在此日志中。

#p#

如果慢查詢日志中記錄內容很多,可以使用mysqldumpslow工具(MySQL客戶端安裝自帶)來對慢查詢日志進行分類匯總。下例中對日志文件mysql_master-slow.log進行了分類匯總,只顯示匯總后摘要結果:

  1. [root@mysql_master mysql_data]#mysqldumpslow mysql_master-slow.log  
  2.  
  3. Reading mysql slow query log from mysql_master-slow.log  
  4.  
  5. Count: 2 Time=11.00s (22s) Lock=0.00s (0s) Rows=1.0 (2), root[root]@mysql_master  
  6.  
  7. select count(N) from t_user; 

對于 SQL 文本完全一致,只是變量不同的語句,mysqldumpslow 將會自動視為同一個語句進行統計,變量值用N來代替。這個統計結果將大大增加用戶閱讀慢查詢日志的效率,并迅速定位系統的SQL 瓶頸

注意:慢查詢日志對于我們發現應用中有性能問題的SQL很有幫助,建議正常情況下,打開此日志并經常查看分析。

【編輯推薦】

  1. 如何安全的遠程使用MySQL GUI工具
  2. 淺談mysql在主從服務器中同步的實現
  3. 記MySQL使用UDF自動同步memcached的效率
  4. 如何解決MySQL第三方客戶端工具顯示中文亂碼
  5. MySQL管理工具phpMyAdmin再發力,新版本發布
責任編輯:趙鵬 來源: 中國IT實驗室
相關推薦

2010-11-25 11:07:28

MySQL慢查詢

2010-10-08 16:26:49

mysql查找

2020-06-05 09:21:20

MySQL慢查詢數據庫

2023-11-30 15:37:37

MySQL數據庫

2011-07-21 13:44:52

MySQLmysqldumpsl

2021-04-07 10:38:43

MySQL數據庫命令

2017-09-18 15:20:02

MySQL慢查詢日志配置

2017-05-23 16:26:26

MySQL優化處理

2017-04-01 19:00:25

MySQL慢查詢

2011-04-02 16:45:58

SQL Server查詢優化

2019-08-14 15:18:55

MySQLSQL數據庫

2020-11-23 11:40:35

MySQSQL數據庫

2020-09-13 13:05:41

MySQL慢查詢數據

2017-08-31 14:09:26

數據庫MySQLSQL優化

2018-03-29 19:45:47

數據庫MySQL查詢優化

2019-12-17 10:16:34

MySQLSQL優化數據庫

2022-09-27 08:40:44

慢查詢MySQL定位優化

2018-10-12 16:45:10

MySQL查詢日志數據庫

2010-11-25 16:29:26

MySQL慢日志查詢

2018-09-20 11:54:31

數據庫MySQL性能優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人永久免费视频 | 亚洲视频免费在线 | 男人亚洲天堂 | 国产精品高潮呻吟久久av野狼 | 欧美一级在线观看 | 黄一级| 中文字幕av网 | 久久不卡 | 国产精品免费观看 | 国产精品亚洲二区 | 91色视频在线观看 | 中文字幕在线观看一区 | 超碰最新在线 | 成人欧美一区二区三区黑人孕妇 | 日本天堂视频在线观看 | 久久爱综合 | 伊人在线 | 热re99久久精品国99热观看 | 青草青草久热精品视频在线观看 | 国产午夜精品久久久久 | 久久精品99久久 | 国产精品久久久久久婷婷天堂 | 黄网站免费在线看 | 日本网站免费观看 | 国产高清在线精品一区二区三区 | 青青操av | 成年人在线视频 | 欧美黄色免费网站 | 成人精品免费视频 | 午夜网| av毛片| 日韩欧美精品 | 青青草久久 | 99reav| 日韩在线视频免费观看 | 97国产一区二区精品久久呦 | 成人在线一区二区三区 | 成人性生交大片 | www.久久 | 日本三级在线视频 | 免费成人高清在线视频 |