mysql与文件_MySQL——文件
構成MySQL數據庫的各種類型文件,包括:參數文件
日志文件
socket文件(套接字方式連接時需要)
pid文件(mysql實例進程id)
MySQL表結構文件
存儲引擎文件(每個存儲引擎自己用來保存數據的文件)
關鍵詞參數文件參數類型
生命周期與關鍵字session
global
日志文件錯誤日志error log
慢查詢日志slow query log
查詢日志log
二進制日志binlog記錄內容
作用
記錄方式
查看方式
表結構定義文件
InnoDB存儲引擎文件表空間文件
重做日志文件重做日志文件和二進制文件的區別
寫入方式
1.參數文件
1.1參數類型
分為兩類:動態(dynamic)參數autocommit
靜態(static)參數log_slave_updates:將slave從master收到的更新記入到slave自己的bin log中,默認不開啟
back_log:如果等待連接的數量超過back_log,將不被授予連接資源,default 50
1.2生命周期與關鍵字
1.2.1session
基于當前會話的生命周期
1.2.2global
基于整個實例的生命周期
注:對變量全局值進行修改,在實例生命周期內都有效,但MySQL實例本身不會對參數文件中的該值進行修改。在下次啟動時MySQL實例還是會讀取參數文件。
2.日志文件
2.1錯誤日志error log
記錄MySQL的啟動、運行、關閉過程。遇到問題時應該首先查看該文件以便定位問題。
2.2慢查詢日志slow query log
可以在MySQL啟動時設一個閾值,將運行時間超過該值的所有SQL語句都記錄到慢查詢日志文件中。
慢查詢表是mysql下的slow_log。
2.3查詢日志log
記錄所有對MySQL數據庫請求的信息,無論這些請求是否得到正確的執行。
查詢日志表是mysql下的general_log。
2.4二進制日志binlog
2.4.1記錄內容
二進制日志(binary log)記錄了對MySQL數據庫執行更改的所有操作。不包括select和show,但是對于沒有導致數據庫變化的寫操作也會記錄。
2.4.2作用
恢復(recovery)
某些數據的恢復需要二進制日志,例如:在一個數據塊全備文件恢復后,用戶可以通過二進制日志進行point-in-time的恢復。
復制(replication)
其原理與恢復類似,通過復制和執行二進制日志使一臺遠程的MySQL數據庫(slave)與一臺MySQL數據庫(master)進行實時同步。
審計(audit)
用戶可以通過二進制日志中的信息來進行審計,判斷是否有對數據庫進行注入的攻擊。
2.4.3記錄方式
所有未提交的二進制日志會被記錄到一個緩存中去,等該事務提交時直接將緩存中的二進制日志寫入二進制日志文件。
2.4.4查看方式
要查看二進制日志文件,需要使用mysqlbinlog。
3.表結構定義文件
每個表都會有與之對應的文件。不論表采用何種存儲引擎,都是由frm為后綴名的文件來記錄該表的表結構定義。
4.InnoDB存儲引擎文件
4.1表空間文件
可以通過多個文件組成一個表空間,所有基于InnoDB存儲引擎的表的數據都會記錄到該共享表空間中。
也可以為每個InnoDB表設置獨立表空間,以ibd后綴命名。獨立表空間只能存儲該表數據、索引、插入緩沖BITMAP等信息。
4.2重做日志文件
4.2.1重做日志文件和二進制文件的區別記錄范圍不同
二進制日志記錄所有與MySQL有關的日志記錄,InnoDB重做日志只記錄InnoDB的。記錄內容不同
二進制文件記錄一個事務的具體操作內容,是邏輯日志;重做日志記錄每個頁(page)的更改的物理情況。寫入時間不同
二進制文件僅在事務提交前進行提交;重做日志條目(redo entry)在事務進行的過程中不斷寫入。
4.2.2寫入方式
先寫入一個重做日志緩沖(redo log buffer)中,然后按照一定的條件順序地寫入日志文件。
總結
以上是生活随笔為你收集整理的mysql与文件_MySQL——文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 循环队列(线性)
- 下一篇: linux cmake编译源码,linu