Mysql 數據庫的文件包括:
1、參數文件:my.cnf
2、日志文件,包括錯誤日志、查詢日志、慢查詢日志、二進制日志
3、Mysql表文件:用來存放mysql表結構的文件,一般以.frm為后綴
4、Socket文件:當用unix域套接字方式進行連接時需要的文件
5、Pid文件:mysql實例的進程ID文件
6、存儲引擎文件:每個存儲引擎都有自己的文件夾來保存各種數據,這些存儲引擎真正存儲了數據和索引等數據。
參數文件
可以通過命令行“mysql --help | grep my.cnf”查看my.cnf文件的位置;
Mysql在啟動時可以不需要參數文件,但是如果在默認的數據庫目錄下找不到mysql架構,則啟動會失敗;
Mysql的參數可以通過“show variables”來查看,由於從mysql5.1版本開始,可以通過information_schema架構下的GLOBAL_VARIABLES視圖來進行查找,所以也可以這樣查看
“select * from information_schema.global_variables”;
Mysql 的參數類型:分為動態(dynamic)和靜態參數(static),動態參數意味着可以再mysql實例運行中進行更改;靜態參數說明在整個實例聲明周期內都不得進行更改,就好像是只讀的。在動態參數中,有些參數修改可以是基於回話的也可以是基於整個實例的生命周期。Mysql5.1的動態參數在這里。
Mysql表文件
不論采用何種搜索引擎,mysql都有一個以frm為后綴名的文件,這個文件記錄了該表的表結構定義文件。值得注意的是,frm還可以用來存放視圖的定義。
Socket文件
通過使用命令“show variables like ‘socket’;”查看socket文件的目錄
Pid 文件
當mysql實例啟動時,會將自己的進程ID寫入一個文件中,該文件即為pid文件,文件名為主機名.pid,通過命令“show variables like ‘pid_file’;”來查看。
日志文件
1、錯誤日志,該文件對mysql的啟動、運行、關閉過程進行了記錄,在遇到問題時,首先應該查看此文件,可以通過“show variables like ‘log_error’;”來定位該文件。
2、慢查詢日志,該文件記錄了所有運行時間超過閥值的SQL語句,該閥值可以通過參數long_query_time來設置。默認值為10秒。
但是在默認情況下,mysql並不啟動滿查詢日志,需要手工修改這個參數;
需要注意的兩點內容:首先,慢查詢日志記錄的是大於閥值的SQL語句,而不是大於等於!!!其次,從mysql5.1開始,long_quey_time開始以微秒記錄sql語句運行時間。
另一個和慢查詢相關的參數是log_queries_not_using_index,如果運行的SQL語句沒有使用索引,則mysql則同樣會將這條SQL語句記錄到慢查詢日志文件中;
在慢查詢日志文件逐漸增大時,可考慮使用工具mysqldumpslow工具幫助我們分析。
該工具的使用您可以使用 “man mysqldumpslow” 或者去這里了解。
Mysql5.1開始可以將慢查詢的日志記錄放入一張表中,該表在mysql.slow_log表中。
是否放在表中由參數‘log_output’來決定;參數log_output指定了慢查詢輸出的格式,默認為FILE,也可以將其設置為TABLE,就可以去Mysql.slow_log中去查詢了。
同樣也可以將查詢日志的記錄放入mysql架構下的general_log表。
3、查詢日志
查詢日志記錄了所有對Mysql數據庫請求的信息。
4、二進制日志
因為二進制日志太重要了,在這里暫且不提。
InnoDB存儲引擎文件
這些文件包括表空間文件和重做日志文件。表空間的介紹請看Mysql InnoDB存儲結構總結,重做日志也很重要,在這里暫且不提。