程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql 開啟慢查詢 若何翻開mysql的慢查詢日記記載

mysql 開啟慢查詢 若何翻開mysql的慢查詢日記記載

編輯:MySQL綜合教程

mysql 開啟慢查詢 若何翻開mysql的慢查詢日記記載。本站提示廣大學習愛好者:(mysql 開啟慢查詢 若何翻開mysql的慢查詢日記記載)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql 開啟慢查詢 若何翻開mysql的慢查詢日記記載正文


mysql慢查詢日記關於跟蹤有成績的查詢異常有效,可以剖析出以後法式裡有很消耗資本的sql語句,那若何翻開mysql的慢查詢日記記載呢?

其實翻開mysql的慢查詢日記很簡略,只須要在mysql的設置裝備擺設文件裡(windows體系是my.ini,linux體系是my.cnf)的[mysqld]上面加上以下代碼:

log-slow-queries=/var/lib/mysql/slowquery.log
long_query_time=2

注:
log-slow-queries 設置把日記寫在那邊,為空的時刻,體系會給慢查詢日記付與主機名,並被附加slow.log. /var/lib/mysql/slowquery.log為日記寄存的文件的地位,普通這個目次要有mysql的運轉帳號的可寫權限,普通都將這個目次設置為mysql的數據寄存目次
long_query_time=2中的2表現查詢跨越兩秒才記載.
假如設置了參數log-long-format,那末一切沒有應用索引的查詢也將被記載。在文件my.cnf或my.ini中參加上面這一行可以記載這些查詢
這是一個有效的日記。它關於機能的影響不年夜(假定一切查詢都很快),而且強調了那些最須要留意的查詢(喪失了索引或索引沒有獲得最好運用)
# Time: 070927 8:08:52
# User@Host: root[root] @ [192.168.0.20]
# Query_time: 372 Lock_time: 136 Rows_sent: 152 Rows_examined: 263630
select id, name from manager where id in (66,10135);
這是慢查詢日記中的一條,用了372秒,鎖了136秒,前往152行,一共查了263630行
假如日記內容許多,用眼睛一條一條去看會累逝世,mysql自帶了剖析的對象,應用辦法以下:
敕令行下,進入mysql/bin目次,輸出mysqldumpslow –help或--help可以看到這個對象的參數,重要有
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
--verbose verbose
--debug debug
--help write this text to standard output
-v verbose
-d debug
-s ORDER what to sort by (t, at, l, al, r, ar etc), 'at' is default
-r reverse the sort order (largest last instead of first)
-t NUM just show the top n queries
-a don't abstract all numbers to N and strings to 'S'
-n NUM abstract numbers with at least n digits within names
-g PATTERN grep: only consider stmts that include this string
-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
default is '*', i.e. match all
-i NAME name of server instance (if using mysql.server startup scrīpt)
-l don't subtract lock time from total time
-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語句。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved