熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

用mysqldumpslow分析mysql的slow query log

2022-06-13   來源: SQL語言 

  mysql有一個功能就是可以log下來運行的比較慢的sql語句默認是沒有這個log的為了開啟這個功能要修改f或者在mysql啟動的時候加入一些參數如果在f裡面修改需增加如下幾行

  long_query_time = logslowqueries = /var/youpath/slowlog logqueriesnotusingindexes

  long_query_time 是指執行超過多久的sql會被log下來這裡是

  logslowqueries 設置把日志寫在那裡可以為空系統會給一個缺省的文件host_nameslowlog我生成的log就在mysql的data目錄

  logqueriesnotusingindexes 就是字面意思log下來沒有使用索引的query

  把上述參數打開運行一段時間就可以關掉了省得影響生產環境

  接下來就是分析了我這裡的文件名字叫hostslowlog

  先mysqldumpslow –help以下俺主要用的是

  s ORDER what to sort by (t at l al r ar etc) ‘at’ is default

  t NUM just show the top n queries

  g PATTERN grep: only consider stmts that include this string

  s是order的順序說明寫的不夠詳細俺用下來包括看了代碼主要有

  ctlr和acatalar分別是按照query次數時間lock的時間和返回的記錄數來排序前面加了a的時倒敘

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

  g後邊可以寫一個正則匹配模式大小寫不敏感的

  mysqldumpslow s c t hostslowlog mysqldumpslow s r t hostslowlog

  上述命令可以看出訪問次數最多的個sql語句和返回記錄集最多的個sql

  mysqldumpslow t s t g “left join” hostslowlog

  這個是按照時間返回前條裡面含有左連接的sql語句

  用了這個工具就可以查詢出來那些sql語句是性能的瓶頸進行優化比如加索引該應用的實現方式等


From:http://tw.wingwit.com/Article/program/SQL/201405/30843.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.