一.文件總體概述
InnoDb文件主要有以下文件
1. 參數文件:啟動需要的各種參數作
2. 日志文件:記錄mysql實例某種條件做出的響應而寫入的文件,如錯誤日志、二進制日志、慢查詢日志、查詢日志等
3. Socket文件:連接需要的文件
4. Pid文件:實例進程文件
5. 表結構文件:用來存放mysql表結構的文件
6. 存儲引擎文件:存儲數據、索引等數據的文件
那么接下來分別對這些文件進行詳細的介紹。
二.文件的詳細介紹
2.1 參數文件
參數文件是mysql在初始化的過程中,需要的啟動的參數,通常已配置文件的方式加載,在conf下有以下my.conf的文件,做為參數文件的入口,如果已經安裝mysql,那么可以用mysql的命令查詢參數文件的位置:mysql --help|grep my.conf。如果不存在此參數文件,mysql啟動并不會報錯,仍然會正常的啟動,那么配置采用代碼中的默認配置
Mysql的參數非常的多,可以通過:show variables;查看所有的參數,如果知道要查詢的參數,則可以使用show variables like ‘參數名稱’;來查詢。
參數分為兩種參數:(1)動態參數,(2)靜態參數。動態參數可以在mysql運行的過程中進行更改, 靜態參數在運行的過程中不能更改,就好像只讀參數一樣。可以通過set修改動態參數,主要的是有些參數只有全局修改,有些參數只能在session范圍內修改,這是兩個作用域。如 set read_buffer_size = 10000,如果是修改全局:則采用set @@global.read_buffer_size = 10000。
2.2 日志文件
日志文件是mysql在處理活動過程中的各種記錄,常見的的日志文件有:(1)錯誤日志,(2)二進制日志,(3)慢查詢日志,(4)查詢日志。日志文件幫助我們更好的優化數據庫。
錯誤日志是對mysql啟動、運行、關閉等所報出的錯誤記錄,如果mysql出現宕機等異常情況,需要通過錯誤日志來排查問題, show variables like ‘log_error’找到錯誤日志的位置
慢查詢日志可以幫助我們找到存在問題的sql語句,以便有針對性的優化
查詢日志記錄了所有對數據庫請求的信息,如果是否正確的執行
二進制日志記錄了對數據庫的更改操作,這對數據的跟蹤有很大的幫助作用,可以查看數據變化的來源
2.3 套接字文件
Mysql的連接文件通常在/tmp目錄下,名為mysql.sock, 可以通過show variables like ‘socket’;查看socket連接的文件位置。
2.4 pid文件
Mysql將自己進程的id寫入到這個文件中,通常這個文件在data目錄下, 可以通過show variables like ‘pid_file’; 查看進程id。
2.5 表結構文件
Mysql的存儲數據的表結構的定義存儲與.frm文件中, 這個目錄在data/{schema}/*.frm;這些文件就是表結構的定義文件, 每一個表一個文件, 與庫中建立的表一致, 注意視圖也是一個frm文件。
2.6 引擎文件之表空間文件
在data目錄中,有一些.ibd文件,這些就是表空間文件,innodb采用表空間存儲,可以指定一個或者幾個文件, 也可以采用每一個表一個表空間, 默認是10M, 可以設置其大小, 如果用完,采用自動增長的方式。表數據、索引、緩沖位于單獨表空間文件中。
2.7 引擎文件之重做日志文件
記錄了InnoDB存儲引擎的日志, 至關重要
