
錯誤日志(error log)
error log主要記錄MySQL在啟動、關閉或者運行過程中的錯誤信息,在MySQL的配置文件my.cnf中,可以通過log-error=/var/log/mysqld.log 執(zhí)行mysql錯誤日志的位置。
慢查詢?nèi)罩荆╯low query log)
MySQL的慢查詢?nèi)罩臼荕ySQL提供的一種日志記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指運行時間超過long_query_time值的SQL,則會被記錄到慢查詢?nèi)罩局小?/p>
long_query_time的默認值為10,意思是運行10秒以上的語句。
由他來查看哪些SQL超出了我們的最大忍耐時間值,比如一條sql執(zhí)行超過5秒鐘,我們就算慢SQL,希望能收集超過5秒的sql,結(jié)合之前explAIn進行全面分析。
默認情況下,MySQL數(shù)據(jù)庫沒有開啟慢查詢?nèi)罩荆枰覀兪謩觼碓O置這個參數(shù)。
一般查詢?nèi)罩荆╣eneral log)
general log 記錄了客戶端連接信息以及執(zhí)行的SQL語句信息,通過MySQL的命令
回滾日志(undo log)
undo log主要用來回滾到某一個版本,是一種邏輯日志。
undo log記錄的是修改之前的數(shù)據(jù),比如:當delete一條記錄時,undolog中會記錄一條對應的insert記錄,從而保證能恢復到數(shù)據(jù)修改之前。在執(zhí)行事務回滾的時候,就可以通過undo log中的記錄內(nèi)容并以此進行回滾。
undo log還可以提供多版本并發(fā)控制下的讀取(MVCC)。
二進制日志(bin log)MySQL的bin log日志是用來記錄MySQL中增刪改時的記錄日志。
當你的一條sql操作對數(shù)據(jù)庫中的內(nèi)容進行了更新,就會增加一條bin log日志。查詢操作不會記錄到bin log中。
bin log最大的用處就是進行主從復制,以及數(shù)據(jù)庫的恢復。
重寫日志(redo log)
redo log是一種基于磁盤的數(shù)據(jù)結(jié)構,用來在MySQL宕機情況下將不完整的事務執(zhí)行數(shù)據(jù)糾正,redo日志記錄事務執(zhí)行后的狀態(tài)。
當事務開始后,redo log就開始產(chǎn)生,并且隨著事務的執(zhí)行不斷寫入redo log file中。redo log file中記錄了xxx頁做了xx修改的信息,我們都知道數(shù)據(jù)庫的更新操作會在內(nèi)存中先執(zhí)行,最后刷入磁盤。
redo log就是為了恢復更新了內(nèi)存但是由于宕機等原因沒有刷入磁盤中的那部分數(shù)據(jù)。






