国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql慢查詢使用與參數詳解

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

慢查詢是mysql中一個非常重要的日志了,我們可以通過mysql慢查詢日志來分析具體導致mysql查詢慢的原因與sql語子,下面就和小編來簡單的學習一下.

慢查詢為系統中查詢時間超過long_query_time的值,分析慢查詢是優化SQL的基礎,默認清下Mysql慢查詢為關閉狀態,可以通過:

show variables where Variable_name = 'log_slow_queries';

來查看是否開啟,如果為OFF則需要修改mysql配置文件,在mysqld下面增加以下參數.

  1. #慢查詢日志地址,需要mysql運行帳號對該目錄有寫權限 
  2. log-slow-queries="/log/slow.log" 
  3. #當query語句大于2s時記錄慢查詢日志 
  4. long_query_time=2 
  5. #沒有使用索引的query也計入慢查詢日志(可根據情況增加) 
  6. log-queries-not-using-indexes 

慢查詢分析

可以使用mysql自帶的mysqldumpslow來進行分析,該命令可帶3個參數.

-s,是表示按照何種方式排序,c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序,ac、at、al、ar,表示相應的倒敘.

-t,是top n的意思,即為返回前面多少條的數據.

-g,后邊可以寫一個正則匹配模式,大小寫不敏感的.

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

mysqldum<a href="/fw/photo.html" target="_blank">ps</a>low -s t -t 10 -g "left join" /alidata/log/mysql/slow.log

mysql運行狀態和變量查看

通過查看mysql的status和variables來優化mysql

1、慢查詢配置,未打開的情況下建議打開,可發現系統中的慢查詢語句以及慢查詢的條數.
  1. mysql> show variables like '%slow%'
  2. +---------------------+-----------------------------+ 
  3. | Variable_name       | Value                       | 
  4. +---------------------+-----------------------------+ 
  5. | log_slow_queries    | ON                          | 
  6. | slow_launch_time    | 2                           | 
  7. | slow_query_log      | ON                          | 
  8. | slow_query_log_file | /alidata/log/mysql/slow.log | 
  9. +---------------------+-----------------------------+ 
  10. rows in set (0.00 sec) --Vevb.com 
  11. mysql> show global status like '%slow%'
  12. +---------------------+-------+ 
  13. | Variable_name       | Value | 
  14. +---------------------+-------+ 
  15. | Slow_launch_threads | 4     | 
  16. | Slow_queries        | 3     | 
  17. +---------------------+-------+ 
  18. rows in set (0.00 sec) 

2、連接數查看,max_connections為允許的最大連接數,Max_used_connections 系統中出現過的最大連接數,據說理想的設置是.

  1. Max_used_connections / max_connections * 100% ≈ 85% 
  2. mysql> show variables like '%connections%'
  3. +----------------------+-------+ 
  4. | Variable_name        | Value | 
  5. +----------------------+-------+ 
  6. | max_connections      | 2000  | 
  7. | max_user_connections | 0     | 
  8. +----------------------+-------+ 
  9. rows in set (0.00 sec) 
  10. mysql> show global status like '%connections%'
  11. +----------------------+-------+ 
  12. | Variable_name        | Value | 
  13. +----------------------+-------+ 
  14. | Connections          | 35049 | 
  15. | Max_used_connections | 12    | 
  16. +----------------------+-------+ 
  17. rows in set (0.00 sec) 

分析日志?mysqldumpslow

分析日志,可用mysql提供的mysqldumpslow,使用很簡單,參數可?help查看.

  1. # -s:排序方式。c , t , l , r 表示記錄次數、時間、查詢時間的多少、返回的記錄數排序; 
  2. #                             ac , at , al , ar 表示相應的倒敘; 
  3. # -t:返回前面多少條的數據; 
  4. # -g:包含什么,大小寫不敏感的; 
  5. mysqldumpslow -s r -t 10  /slowquery.log     #slow記錄最多的10個語句 
  6. mysqldumpslow -s t -t 10 -g "left join"  /slowquery.log     #按照時間排序前10中含有"left join"的 

推薦用分析日志工具?mysqlsla

  1. wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz 
  2. tar zvxf mysqlsla-2.03.tar.gz 
  3. cd mysqlsla-2.03 
  4. perl Makefile.PL 
  5. make 
  6. make install 
  7. mysqlsla /data/mysqldata/slow.log 
  8. # mysqlsla會自動判斷日志類型,為了方便可以建立一個配置文件“~/.mysqlsla” 
  9. # 在文件里寫上:top=100,這樣會打印出前100條結果. 

說明:

queries total:總查詢次數 unique:去重后的sql數量

sorted by:輸出報表的內容排序

最重大的慢sql統計信息,包括 平均執行時間,等待鎖時間,結果行的總數,掃描的行總數.

Count,sql的執行次數及占總的slow log數量的百分比.

Time,執行時間,包括總時間,平均時間,最小,最大時間,時間占到總慢sql時間的百分比.

95% of Time,去除最快和最慢的sql, 覆蓋率占95%的sql的執行時間.

Lock Time,等待鎖的時間.

95% of Lock,95%的慢sql等待鎖時間.

Rows sent,結果行統計數量,包括平均,最小,最大數量.

Rows examined,掃描的行數量.

Database,屬于哪個數據庫

Users,哪個用戶,IP,占到所有用戶執行的sql百分比

Query abstract,抽象后的sql語句

Query sample,sql語句

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苗栗市| 娱乐| 博罗县| 天等县| 博爱县| 舞阳县| 东至县| 琼中| 繁峙县| 遵义市| 孝昌县| 天津市| 苍山县| 甘谷县| 夹江县| 保山市| 白沙| 舞阳县| 巴林右旗| 龙海市| 高青县| 邮箱| 台中县| 贞丰县| 兴业县| 徐州市| 保亭| 长沙县| 延安市| 潼南县| 拉萨市| 淳安县| 浠水县| 屯留县| 双牌县| 阿图什市| 碌曲县| 什邡市| 和龙市| 龙胜| 来凤县|