TShopping

 找回密碼
 註冊
搜索
查看: 1562|回復: 3

[分享] 找出 MySQL 哪些 Query 速度較慢

[複製鏈接]
發表於 2008-5-30 17:52:30 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
MySQL 中有內建的設定, 在 my.cnf 中設定:
log-slow-queries = [slow_query_log_filename]
即可記錄查詢時間花費超過的 10s的 SQL 語法(Default).
若要改 5秒 可設定如: long_query_time = 5 即設定為 5s 記錄下來.



如果要記錄所有 SQL 語法,可以寫入:
log-long-format (查看最常用到的欄位加 index)
# t=time, l=lock time, r=rows
# at, al, 以及 ar 是對應的平均值
Ex: 於 my.cnf ([mysqld]) 加入 複製內容到剪貼板 代碼:log-slow-queries = /var/log/mysql/mysql-slow.log
long_query_time = 5
log-long-format
而那些查詢速度較花時間的語法, 預設會記到 MysSQL 存放處的*-slow.log

但是要怎麼去分析這個 log file, 就要靠 MySQL 的 mysqldumpslow 來分析.
mysqldumpslow(Perl Script), 由裡面接收變數直接撈出來, 可接受的參數有:
'v+', # verbose
'd+', # debug
's=s', # 排序 (t, at, l, al, r, ar etc)
'r!', # 倒排序 (largest last instead of first)
't=i', # 顯示最高的 n 個查詢
'a!', # 不把所有的數位以 N, 字串以 'S' 顯示
'n=i', # abstract numbers with at least n digits within names
'g=s', # grep: only consider stmts that include this string
'h=s', # hostname of db server for *-slow.log filename (can be wildcard)
'i=s', # name of server instance (if using mysql.server startup script)
'l!', # don't subtract lock time from total time

參考: MySQL 自帶的 slow log 分析工具 mysqldumpslow: http://www.freelamp.com/1102605188/index_html

PS: 另外也是加上 log-query-time 下面的參數: log-queries-not-using-indexes 看起來也不錯, 詳細可見; The Slow Query Log: http://dev.mysql.com/doc/refman/4.1/en/slow-query-log.html

原始文章引用: http://plog.longwin.com.tw/post/1/234

 

臉書網友討論
發表於 2013-11-8 01:10:16 | 顯示全部樓層
哈哈,頂你了哦.  

版主招募中

發表於 2013-11-8 01:10:16 | 顯示全部樓層
這個帖不错!!!!!  


發表於 2013-11-8 01:10:16 | 顯示全部樓層
回帖是種美德.  


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-11 04:51 , Processed in 0.122104 second(s), 19 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表