婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL啟用慢查詢日志記錄方法

MySQL啟用慢查詢日志記錄方法

熱門標簽:如何選擇優質的外呼系統 地圖簡圖標注 清遠申請400電話 南通電銷外呼系統哪家強 桂林云電銷機器人收費 東莞外呼企業管理系統 沈陽智能外呼系統供應商 谷歌地圖標注位置圖解 手機外呼系統違法嗎

在MySQL中,慢查詢的界定時間是由MySQL內置參數變量long_query_time來指定的,其默認值為10(單位:秒),我們可以通過show variables like 'long_query_time';指令來查看該參數變量的信息:
long_query_time的默認值為10秒

不過,在程序開發過程中,我們認為慢速查詢的界定時間并沒有10秒這么長,依據不同項目的不同需求,我們一般將慢查詢的界定時間設定為1~5秒之間。我們可以使用指令set long_query_time = 秒數來設定long_query_time變量的值。
設定long_query_time的值為1秒

修改了long_query_time參數后,我們還需要讓MySQL能夠記錄下慢查詢的日志信息。因為,在默認情況下,MySQL并不會記錄慢查詢的日志信息。如果要記錄慢查詢日志,我們需要以命令行方式進入MySQL安裝目錄in目錄(也可將該目錄添加到PATH環境變量中),使用如下命令重新啟動MySQL:

#中括號[]內的部分是可選的,file_name表示日志文件路徑
#在5.5及以上版本的MySQL中,使用如下命令啟動:
mysqld --show-query-log[=1] [--show-query-log-file=file_name]
#在5.0、5.1等低版本的MySQL中,使用如下命令啟動:
mysqld --log-slow-queries[=file_name]

 在上述命令中,如果沒有指定日志文件名,則日志文件名稱默認為主機名-slow.log;如果沒有指定文件路徑或者指定的文件路徑不是絕對路徑,則日志文件將默認存放在MySQL配置文件my.ini中參數datadir所指定的目錄下。
此外,你也可以將上述命令行啟動命令配置到my.ini中的[mysqld]節點下,這樣無需每次手動鍵入上述命令來啟動。

[mysqld]
  #設置慢查詢界定時間為1秒
  long_query_time=1
  #5.0、5.1等版本配置如下選項
  log-slow-queries="mysql_slow_query.log"
  #5.5及以上版本配置如下選項
  slow-query-log=On
  slow_query_log_file="mysql_slow_query.log"

注意:雖然慢查詢的名字中只包含了”查詢”,實際上并不僅僅表示SELECT查詢操作,諸如INSERT、UPDATE、DELETE、CALL等其他DML操作,只要是超過指定時間的,都可以稱之為“慢查詢”,并且會記錄在慢查詢日志中。

這個時候,我們就需要使用EXPLAIN指令來獲取SELECT語句執行的細節信息。在MySQL中數據庫中,EXPLAIN指令的用法非常簡單,如下所示:

EXPLAIN SELECT語句

--例如:EXPLAIN SELECT * FROM admin WHERE user_id = 1;

如果是在Oracle數據庫中,我們同樣可以使用如下SQL語句來獲取SELECT語句的執行計劃信息:

EXPLAIN PLAN FOR SELECT語句
--例如:EXPLAIN PLAN FOR SELECT * FROM admin WHERE user_id = 1;

在這里,我們以MySQL為例,在數據庫中執行上述EXPLAIN指令,將會輸出如下結果(user_id是admin表的主鍵列):

為了進一步說明上述執行計劃信息所表示的含義,我們再次執行帶格式化的EXPLAIN命令

EXPLAIN SELECT * FROM admin WHERE user_id = 1G;

(G在MySQL中表示格式化輸出結果),我們將會得到如下信息:

*************************** 1. row ***************************
      id: 1
 select_type: SIMPLE 
    table: admin
     type: const
possible_keys: PRIMARY
     key: PRIMARY
   key_len: 1
     ref: const
     rows: 1
    Extra:
1 row in set (0.00 sec)

下面,我們來詳細介紹上述輸出結果中每個字段信息所表示的含義:

id
SELECT識別符。這是SELECT的查詢序號。
select_type
SELECT類型,可以為以下任何一種:
SIMPLE
簡單SELECT(不使用UNION或子查詢)。
PRIMARY
最外面的SELECT
UNION
UNION中的第二個或后面的SELECT語句。
DEPENDENT UNION
UNION中的第二個或后面的SELECT語句,取決于外面的查詢。
UNION RESULT
UNION的結果。
SUBQUERY
子查詢中的第一個SELECT。
DEPENDENT SUBQUERY
子查詢中的第一個SELECT,取決于外面的查詢。
DERIVED
導出表的SELECT(FROM子句的子查詢)。
table
輸出的行所引用的表。
type
聯接類型。下面給出各種聯接類型,按照從最佳類型到最壞類型進行排序:
system
表僅有一行(=系統表)。這是const聯接類型的一個特例。
const
表最多有一個匹配行,它將在查詢開始時被讀取。因為僅有一行,在這行的列值可被優化器剩余部分認為是常數。const表很快,因為它們只讀取一次!
eq_ref
對于每個來自于前面的表的行組合,從該表中讀取一行。這可能是最好的聯接類型,除了const類型。它用在一個索引的所有部分被聯接使用并且索引是UNIQUE或PRIMARY KEY。
ref
對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。如果聯接只使用鍵的最左邊的前綴,或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯接不能基于關鍵字選擇單個行的話),則使用ref。如果使用的鍵僅僅匹配少量行,該聯接類型是不錯的。ref可以用于使用=或=>操作符的帶索引的列。
ref_or_null
該聯接類型如同ref,但是添加了MySQL可以專門搜索包含NULL值的行。在解決子查詢中經常使用該聯接類型的優化。
index_merge
該聯接類型表示使用了索引合并優化方法。在這種情況下,key列包含了使用的索引的清單,key_len包含了使用的索引的最長的關鍵元素。
unique_subquery
該類型替換了下面形式的IN子查詢的ref:value IN (SELECT primary_key FROM single_table WHERE some_expr)。 unique_subquery是一個索引查找函數,可以完全替換子查詢,效率更高。
index_subquery
該聯接類型類似于unique_subquery。可以替換IN子查詢,但只適合下列形式的子查詢中的非唯一索引:value IN (SELECT key_column FROM single_table WHERE some_expr)
range
只檢索給定范圍的行,使用一個索引來選擇行。key列顯示使用了哪個索引。key_len包含所使用索引的最長關鍵元素。在該類型中ref列為NULL。 當使用=、>、>、>=、、=、IS NULL、=>、BETWEEN或者IN操作符,用常量比較關鍵字列時,可以使用range。
index
該聯接類型與ALL相同,除了只有索引樹被掃描。這通常比ALL快,因為索引文件通常比數據文件小。 當查詢只使用作為單索引一部分的列時,MySQL可以使用該聯接類型。
ALL
對于每個來自于先前的表的行組合,進行完整的表掃描。如果表是第一個沒標記const的表,這通常不好,并且通常在它情況下很差。通常可以增加更多的索引而不要使用ALL,使得行能基于前面的表中的常數值或列值被檢索出。
possible_keys
possible_keys列指出MySQL能使用哪個索引在該表中找到行。注意,該列完全獨立于EXPLAIN輸出所示的表的次序。這意味著在possible_keys中的某些鍵實際上不能按生成的表次序使用。 如果該列是NULL,則沒有相關的索引。在這種情況下,可以通過檢查WHERE子句看是否它引用某些列或適合索引的列來提高你的查詢性能。如果是這樣,創造一個適當的索引并且再次用EXPLAIN檢查查詢。
key
key列顯示MySQL實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是NULL。要想強制MySQL使用或忽視possible_keys列中的索引,在查詢中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。
key_len
key_len列顯示MySQL決定使用的鍵長度。如果鍵是NULL,則長度為NULL。注意通過key_len值我們可以確定MySQL將實際使用一個多部關鍵字的幾個部分。
ref
ref列顯示使用哪個列或常數與key一起從表中選擇行。
rows
rows列顯示MySQL認為它執行查詢時必須檢查的行數。
Extra
該列包含MySQL解決查詢的詳細信息。下面解釋了該列可以顯示的不同的文本字符串:
Distinct
MySQL發現第1個匹配行后,停止為當前的行組合搜索更多的行。
Not exists
MySQL能夠對查詢進行LEFT JOIN優化,發現1個匹配LEFT JOIN標準的行后,不再為前面的的行組合在該表內檢查更多的行。 下面是一個可以這樣優化的查詢類型的例子:SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;假定t2.id定義為NOT NULL。在這種情況下,MySQL使用t1.id的值掃描t1并查找t2中的行。如果MySQL在t2中發現一個匹配的行,它知道t2.id絕不會為NULL,并且不再掃描t2內有相同的id值的行。換句話說,對于t1的每個行,MySQL只需要在t2中查找一次,無論t2內實際有多少匹配的行。
range checked for each record (index map: #)
MySQL沒有發現好的可以使用的索引,但發現如果來自前面的表的列值已知,可能部分索引可以使用。對前面的表的每個行組合,MySQL檢查是否可以使用range或index_merge訪問方法來索取行。 這并不很快,但比執行沒有索引的聯接要快得多。
Using filesort
MySQL需要額外的一次傳遞,以找出如何按排序順序檢索行。通過根據聯接類型瀏覽所有行并為所有匹配WHERE子句的行保存排序關鍵字和行的指針來完成排序。然后關鍵字被排序,并按排序順序檢索行。
Using index
從只使用索引樹中的信息而不需要進一步搜索讀取實際的行來檢索表中的列信息。當查詢只使用作為單一索引一部分的列時,可以使用該策略。
Using temporary
為了解決查詢,MySQL需要創建一個臨時表來容納結果。典型情況如查詢包含可以按不同情況列出列的GROUP BY和ORDER BY子句時。
Using where
WHERE子句用于限制哪一個行匹配下一個表或發送到客戶。除非你專門從表中索取或檢查所有行,如果Extra值不為Using where并且表聯接類型為ALL或index,查詢可能會有一些錯誤。 如果想要使查詢盡可能快,應找出Using filesort 和Using temporary的Extra值。
Using sort_union(...), Using union(...), Using intersect(...)
這些函數說明如何為index_merge聯接類型合并索引掃描。
Using index for group-by
類似于訪問表的Using index方式,Using index for group-by表示MySQL發現了一個索引,可以用來查詢GROUP BY或DISTINCT查詢的所有列,而不要額外搜索硬盤訪問實際的表。并且,按最有效的方式使用索引,以便對于每個組,只讀取少量索引條目。

您可能感興趣的文章:
  • mysql 開啟慢查詢 如何打開mysql的慢查詢日志記錄
  • MySQL日志設置及查看方法
  • MySQL日志文件詳解
  • MySQL系列之十一 日志記錄

標簽:貴州 常德 臨沂 內蒙古 重慶 湖州 天津 成都

巨人網絡通訊聲明:本文標題《MySQL啟用慢查詢日志記錄方法》,本文關鍵詞  MySQL,啟用,慢,查詢,日志,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL啟用慢查詢日志記錄方法》相關的同類信息!
  • 本頁收集關于MySQL啟用慢查詢日志記錄方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩免费观看一区二区三区 | 波多野结衣在线一区| 亚洲va欧美va人人爽午夜| 国产精品成人免费| 日韩美女视频一区二区 | 欧美国产乱子伦| 精品1区2区在线观看| 日韩欧美成人午夜| 久久综合色综合88| 欧美激情一区二区在线| 亚洲欧洲性图库| 一区二区三区四区精品在线视频 | av在线免费不卡| 色综合天天狠狠| 91黄色激情网站| 欧美日韩电影在线播放| 日韩视频在线你懂得| 国产婷婷色一区二区三区在线| 中文字幕不卡在线观看| 亚洲精品菠萝久久久久久久| 夜夜嗨av一区二区三区四季av | 亚洲国产精品一区二区www| 亚洲国产婷婷综合在线精品| 日韩高清电影一区| 国产精品中文欧美| 91国产免费看| 欧美一区二区免费观在线| 精品国产欧美一区二区| 中文字幕亚洲在| 日本不卡123| 不卡的电视剧免费网站有什么| 在线亚洲高清视频| 久久色在线视频| 亚洲精品免费视频| 精品一区二区影视| 在线观看一区二区视频| 久久综合色之久久综合| 一区二区在线观看av| 黄一区二区三区| 91精彩视频在线| 欧美国产精品中文字幕| 日韩电影一二三区| 色综合av在线| 久久精品一区四区| 欧美a级理论片| 在线视频国内自拍亚洲视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲欧美另类久久久精品2019| 开心九九激情九九欧美日韩精美视频电影 | 国产精品1024久久| 91精品黄色片免费大全| 亚洲免费观看高清完整版在线| 国产裸体歌舞团一区二区| 欧美日韩一区二区在线观看视频| 中文字幕不卡在线| 国产精品影音先锋| 日韩无一区二区| 日韩综合小视频| 在线观看国产一区二区| 国产精品久久久久桃色tv| 国产一区二区在线免费观看| 91麻豆精品91久久久久久清纯| 亚洲欧美电影一区二区| a亚洲天堂av| 久久精品免费在线观看| 国内不卡的二区三区中文字幕| 欧美日韩精品专区| 午夜伊人狠狠久久| 欧美乱妇15p| 午夜精品久久久久久不卡8050| 在线亚洲一区观看| 亚洲在线视频免费观看| 欧美影院一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 成人av电影免费在线播放| 欧美激情自拍偷拍| 成人激情开心网| 亚洲欧美激情插| 色婷婷综合久久| 亚洲综合久久久| 欧美视频一区二区三区在线观看 | 国产亚洲成年网址在线观看| 久久99久久99| 久久久久久电影| eeuss国产一区二区三区| 日本一区二区成人| 成人app在线观看| 亚洲夂夂婷婷色拍ww47| 欧美高清视频不卡网| 人妖欧美一区二区| 国产日韩欧美精品在线| www.综合网.com| 亚洲va国产va欧美va观看| 欧美精品丝袜中出| 国产精品亚洲视频| 自拍视频在线观看一区二区| 欧美三级韩国三级日本三斤| 日韩黄色免费网站| 日本一区二区综合亚洲| 99精品欧美一区| 男女性色大片免费观看一区二区| 精品99一区二区| 91亚洲精品久久久蜜桃| 日韩中文字幕1| 中文字幕av一区二区三区高| 色妞www精品视频| 精品一区二区三区免费毛片爱| 中文字幕中文字幕一区二区| 欧美日韩国产高清一区二区| 国内精品国产三级国产a久久| 成人免费一区二区三区视频| 337p亚洲精品色噜噜狠狠| 成人教育av在线| 日本va欧美va欧美va精品| 国产精品福利av| 欧美成va人片在线观看| 91久久精品一区二区三| 国产精品一区久久久久| 亚洲在线视频一区| 国产女人18水真多18精品一级做| 欧美精品视频www在线观看 | 黑人巨大精品欧美黑白配亚洲| 中文字幕一区三区| 精品国产乱码久久久久久浪潮| 在线观看视频欧美| 成人久久视频在线观看| 裸体在线国模精品偷拍| 亚洲一区二区在线免费观看视频 | 国产高清不卡一区二区| 亚洲成人精品一区二区| 国产精品二三区| 国产区在线观看成人精品| 91精品久久久久久蜜臀| 欧美日韩一本到| 欧美在线观看视频在线| 99久久精品国产毛片| 成人天堂资源www在线| 狠狠久久亚洲欧美| 精品午夜一区二区三区在线观看| 日韩有码一区二区三区| 五月综合激情婷婷六月色窝| 亚洲小少妇裸体bbw| 亚洲一区在线视频| 亚洲愉拍自拍另类高清精品| 亚洲视频网在线直播| 亚洲欧美综合另类在线卡通| 国产精品福利在线播放| 国产精品热久久久久夜色精品三区 | 国产精品久线观看视频| 精品成a人在线观看| 欧美日韩在线观看一区二区| 欧洲一区在线电影| 99麻豆久久久国产精品免费| 国产精品一区二区男女羞羞无遮挡| 日韩精品亚洲专区| 亚洲成人激情综合网| 有坂深雪av一区二区精品| 中文字幕+乱码+中文字幕一区| 欧美成人女星排名| 日韩欧美在线不卡| 久久久精品国产99久久精品芒果| 日韩写真欧美这视频| 91精品国产一区二区三区蜜臀| 91精彩视频在线观看| 一本大道久久a久久综合婷婷| 国产成人高清视频| 风间由美一区二区av101| 自拍偷拍国产亚洲| 视频一区二区不卡| 奇米888四色在线精品| 蜜臀av性久久久久蜜臀av麻豆| 精品在线你懂的| 国产高清不卡一区| 不卡的av在线| 大尺度一区二区| 欧美久久久久中文字幕| 欧美一级日韩不卡播放免费| 欧美一区二区三区色| 精品久久久久久久久久久久久久久 | 欧美最新大片在线看| 日韩欧美一二三四区| 欧美精品一区二区在线播放| 久久综合久久鬼色| 国产精品丝袜黑色高跟| 五月综合激情网| 极品少妇一区二区| 国产suv精品一区二区三区| 国产xxx精品视频大全| 91免费国产在线| 欧美精品丝袜久久久中文字幕| 日韩欧美精品三级| 亚洲综合色婷婷| 久久精品99久久久| av在线不卡观看免费观看| www.日韩大片| 精品福利av导航| 中文字幕在线一区免费| 五月天亚洲精品| 欧美亚洲丝袜传媒另类| 日韩免费视频一区|