做過大型系統(tǒng)的都知道,日志的作用不用小覷,往往到了項目中后期,對項目進行優(yōu)化升級都是依據(jù)日志做出升級優(yōu)化的決策的。那么學(xué)習(xí)MySQL,日志部分當然不能錯過。我們面試中實際應(yīng)用的所談到的優(yōu)化都是要從日志中得出來的。系統(tǒng)的學(xué)習(xí)mysql的日志,有助于我們準確的定位問題,提高自己的工作水平。此外,后面的一系列日志會重點從DBA的運維方面進行著手,系統(tǒng)的去理解MySQL各方面的配置,做到知己知彼,讓MySQL成為自己得心應(yīng)手的數(shù)據(jù)倉庫。

一、MySQL的日志類型

默認情況下,所有的MySQL日志以文件的方式存放在數(shù)據(jù)庫根目錄下:

[root@roverliang data]# pwd
/usr/local/webserver/extend_lib/mysql/data
[root@roverliang data]# ls
auto.cnf  ibdata1  ib_logfile0  ib_logfile1  mysql  mytest  performance_schema  roverliang  roverliang.err  roverliang.pid  test

MySQL的日志類型有以下幾種:

1.  錯誤日志(error),MySQL服務(wù)實例啟動、運行或者停止等相關(guān)信息。
2.  普通查詢?nèi)罩荆╣eneral),MySQL服務(wù)實例運行的所有SQL語句或者MySQL命令。
3.  二進制日志(binary),對數(shù)據(jù)庫執(zhí)行的所有更新語句,不包括select 和show語句。
4.  慢查詢?nèi)罩荆╯low),執(zhí)行時間超過long_query_time 設(shè)置值的SQL語句,或者沒有使用索引的SQL語句。

二、MySQL日志緩存

一個高速、穩(wěn)定、可靠的系統(tǒng),緩存在其中必定起著至關(guān)重要的作用。MySQL日志處理也使用了緩存機制。MySQL日志最初存放在MySQL服務(wù)器的內(nèi)存中,若超過指定的存儲容量,內(nèi)存中的日志則寫(或者刷新flush)到外存中,以數(shù)據(jù)庫表或者以文件的方式永遠的保存在硬盤中。

三、MySQL錯誤日志(error log)

MySQL的錯誤日志主要記錄MySQL服務(wù)實例每次啟動、停止的詳細信息,以及MySQL實例運行過程中產(chǎn)生的警告或者錯誤信息。和其他的日志不同,MySQL的error日志必須開啟,無法關(guān)閉。

默認情況下,錯誤日志的文件名為: 主機名.err。 但error 日志并不會記錄所有的錯誤信息,只有MySQL服務(wù)實例運行過程中發(fā)聲的關(guān)鍵錯誤(critical)才會被記錄下來。

網(wǎng)友評論