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

首頁 > 數據庫 > MySQL > 正文

MySQL慢查詢日志啟動分析詳解介紹

2024-07-24 12:35:11
字體:
來源:轉載
供稿:網友
  mysql的慢查詢日志是用來記錄log下來運行的比較慢的sql語句,默認是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在MySQL啟動的時候加入一些參數即可實現了,下面小編來整理windows與linux下的例子.
 
  1)配置開啟
 
  Linux:在mysql配置文件 my.cnf 中增加如下語句:
 
  log-slow-queries=/var/lib/mysql/slowquery.log #指定日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log
 
  long_query_time=5 #記錄超過的時間,默認為10s,這里設置為查詢時間超過5s的查詢語句
 
  log-queries-not-using-indexes = on # 列出沒有使用索引的查詢語句
 
  #log-queries-not-using-indexes 是否記錄所有沒有使用索引的query,可以根據情況決定是否開啟
 
  #log-long-format 是否記錄所有的查詢記錄,包括沒有使用索引的查詢.
 
  Windows:在 my.ini 的[mysqld]添加如下語句(語句選項以及釋義同上):
 
  log-slow-queries = E:\mysql\log\mysqlslowquery.log
 
  long_query_time = 5
 
  2)查看方式
 
  Linux:使用mysql自帶命令mysqldumpslow查看.
 
  常用命令
 
  -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
 
  eg:s,是order的順序,說明寫的不夠詳細,俺用下來,包括看了代碼,主要有 c,t,l,r和ac,at,al,ar,分別是按照query次數,時間,lock的時間和返回的記錄數來排序,前面加了a的時倒序.
 
  -t,是top n的意思,即為返回前面多少條的數據
 
  -g,后邊可以寫一個正則匹配模式,大小寫不敏感的.
 
  具體命令使用如下:
 
  mysqldumpslow -s c -t 20 host-slow.log
 
  mysqldumpslow -s r -t 20 host-slow.log
 
  上述命令可以看出訪問次數最多的20個sql語句和返回記錄集最多的20個sql。
 
  mysqldumpslow -t 10 -s t -g “left join” host-slow.log這個是按照時間返回前10條里面含有左連接的sql語句。
 
  Windows:當你是第一次開啟mysql的慢查詢,會在你指定的目錄下創建這個記錄文件,本文就是mysqlslowquery.log,這個文件的內容大致如下(第一次開啟MYSQL慢查詢的情況下)
 
  E:\web\mysql\bin\mysqld, Version: 5.4.3-beta-community-log (MySQL Community Server (GPL)). started with:
 
  TCP Port: 3306, Named Pipe:(null)
 
  Time Id Command Argument
 
  可以通過如下的命令來查看慢查詢的記錄數:
 
  mysql> show global status like ‘%slow%’;
  +———————+——-+
  | Variable_name | Value |
  +———————+——-+
  | Slow_launch_threads | 0 |
  | Slow_queries | 0 |
  +———————+——-+
  生成了日志我們可以使用mysqlsla慢查詢日志分析工具來進行處理具體看例子.
 
  一、mysqlsla的安裝
 
  wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
  tar zvxf mysqlsla-2.03.tar.gz     
  cd mysqlsla-2.03   
  perl Makefile.PL   
  make  
  make install  
  二、使用參數說明
 
  1.--log-type (-lt) type logs:
 
  通過這個參數來制定log的類型,主要有slow,general,binary,msl,udl,分析slow log時通過制定為slow.
 
  2.--sort:
 
  制定使用什么參數來對分析結果進行排序,默認是按照t_sum來進行排序.
 
  t_sum按總時間排序,c_sum按總次數排序
 
  3.--top:
 
  顯示sql的數量,默認是10,表示取按規則排序的前多少條.
 
  4.--statement-filter (-sf) [+-][TYPE]:
 
  過濾sql語句的類型,比如select、update、drop. [TYPE]有SELECT,CREATE,DROP,UPDATE, INSERT,例如"+SELECT,INSERT",不出現的默認是-,即不包括.
 
  5.--databases db:    
 
  要處理哪個庫的日志:

  三、使用范例
 
  1.統計慢查詢文件為dowload_server1-slow.log的所有select的慢查詢sql,并顯示執行時間最長的10條sql,并寫到sql_time.sql中去
 
  mysqlsla -lt slow  -sf "+select" -top 10  dowload_server1-slow.log >test_time.log
 
  2.統計慢查詢文件為dowload_server1-slow.log的數據庫為ultraxsmutf8的所有select和update的慢查詢sql,并查詢次數最多的100條sql,并寫到sql_num.sql中去
 
  mysqlsla -lt slow  -sf "+select,update" -top 100 -sort c_sum -db  ultraxsmutf8 dowload_server1-slow.log >num_time.log --phpfensi.com
 
  四、FAQ
 
  1.錯誤:
 
  Can't locate DBI.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-…….
 
  解決辦法: perl -MCPAN -e 'install DBI' 或者cpan DBI
 
  2、錯誤:
 
  Use of uninitialized value in numeric comparison (<=>) at /usr/bin/mysqlsla line 2962.
 
  解決辦法:當采用-sort t_su就會出現這個錯誤,默認就是采用時間排序,因此可以去掉.
 
  刪除慢查詢日志,直接通過命令 rm -f 刪除了慢查詢日志.
 

 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通江县| 凤山市| 雅江县| 泾川县| 渝中区| 甘孜| 东兰县| 抚州市| 六枝特区| 铅山县| 高平市| 营山县| 淳化县| 新津县| 北碚区| 土默特左旗| 郑州市| 高邮市| 紫云| 诏安县| 靖边县| 乌审旗| 咸阳市| 同江市| 西华县| 卓资县| 临西县| 贡山| 武隆县| 会昌县| 中方县| 璧山县| 双辽市| 南部县| 工布江达县| 中江县| 莆田市| 高碑店市| 永平县| 常熟市| 鄄城县|