新聞中心
MySQL的慢查詢?nèi)罩臼荕ySQL提供的一種日志記錄,它用來記錄在MySQL中響應(yīng)時(shí)間超過閥值的語句,具體指運(yùn)行時(shí)間超過long_query_time值的SQL,則會(huì)被記錄到慢查詢?nèi)罩局小?/p>

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁制作,對(duì)地磅秤等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)成都網(wǎng)站營(yíng)銷優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
慢查詢?nèi)罩境S玫淖兞?/h3>
long_query_time : 最小值為0,默認(rèn)為10毫秒,僅記錄超過查詢時(shí)間的SQL,最小粒度為毫秒。
min_examined_row_limit : 執(zhí)行查詢時(shí)掃描過的行數(shù)。
slow_query_log_file : 慢查詢?nèi)罩疚募Q
log-output : 慢查詢?nèi)罩敬娣怕窂?/p>
log_queries_not_using_indexes : 不使用索引的查詢記錄到慢查詢?nèi)罩?/p>
log_slow_slave_statements : 將集群中的慢查詢?nèi)罩居涗浀街鞴?jié)點(diǎn)主機(jī)慢查詢?nèi)罩局小?/p>
詳解慢查詢?nèi)罩镜氖褂?/h3>
將日志記錄到文件時(shí),最小時(shí)間粒度可以為毫秒。但是將日志記錄到數(shù)據(jù)庫(kù)中的表時(shí),只能記錄到整型的秒。所以,慢查詢?nèi)罩径鄶?shù)記錄在文件中。
mysql并不將初始鎖定SQL時(shí)間當(dāng)作執(zhí)行時(shí)間,mysqld只有在sql執(zhí)行完畢,并且釋放了所有的鎖后,才會(huì)將日志寫進(jìn)文件。因此,日志中記錄的順序可能與應(yīng)用程序?qū)嶋H執(zhí)行的時(shí)間不同。
默認(rèn)情況下,慢查詢?nèi)罩臼遣粏⒂玫?,所以很多人從來不知道這個(gè)玩意。若啟用慢查詢?nèi)罩?,需要在啟?dòng)mysql時(shí)指定 –slow_query_log[=01]. 如果沒有參數(shù)或者參數(shù)為1,就啟用了慢查詢?nèi)罩?。?dāng)然參數(shù)為0的話,就會(huì)禁用慢查詢?nèi)罩?。指定日志文件名稱的話,使用 –slow_query_log_file=file_name。指定日志文件路徑的話,使用 –log-output=output_file_name。
如果沒有為慢查詢?nèi)罩局付ㄎ募脑?,默認(rèn)名字是 host_name-slow.log。如果不為日志指定目錄的話,這個(gè)日志會(huì)存放在數(shù)據(jù)目錄下。
有一點(diǎn)需要的是,如果不為慢查詢?nèi)罩疚募也坏侥夸浕蛘吣夸洸淮嬖诘脑?,即便啟用了慢查詢?nèi)罩?,也不?huì)記錄到慢查詢?nèi)罩疚募?。所以,切記指定的慢查詢?nèi)罩灸夸浭且粋€(gè)已經(jīng)存在的目錄。
如果想要慢查詢?nèi)罩旧儆淈c(diǎn)內(nèi)容的話,可以使用 –log-short-format選項(xiàng)。
如果想要將管理行為也記錄到慢查詢?nèi)罩局?,可以使用log_slow_admin_statements變量。它會(huì)記錄下修改數(shù)據(jù)表,分析數(shù)據(jù)表,檢查數(shù)據(jù)表,創(chuàng)建索引,刪除索引以及修復(fù)數(shù)據(jù)表等行為。
如果要在慢查詢?nèi)罩局杏涗浵聸]有使用索引的查詢,可以使用log_queries_not_using_indexes變量。當(dāng)然這么做,會(huì)導(dǎo)致系統(tǒng)的日志增加的特別快。我們可以使用log_throttle_queries_not_using_indexes變量限制記錄查詢的頻率。這個(gè)變量的默認(rèn)值是0,即無限制記錄。我們最好設(shè)置一個(gè)整數(shù)如60,只需記錄每分鐘不使用索引查詢的次數(shù)即可。
最后,從數(shù)據(jù)庫(kù)緩存中查詢的記錄不會(huì)記錄到慢查詢?nèi)罩局?。如果一個(gè)表沒有數(shù)據(jù)的話,也不會(huì)記錄到慢查詢?nèi)罩局?。集群中的主?jié)點(diǎn)不會(huì)將重復(fù)的內(nèi)容記錄到慢查詢?nèi)罩局?,除非啟?log_slow_slave_statements。
當(dāng)前名稱:講解一下MySQL的慢查詢?nèi)罩?
URL網(wǎng)址:http://m.5511xx.com/article/ccchjij.html


咨詢
建站咨詢
