- 參數(shù)文件:告訴MySQL實(shí)例啟動(dòng)時(shí)在哪里可以找到數(shù)據(jù)庫(kù)文件,并且指定某些初始化參數(shù)枣购,這些參數(shù)定義了某種內(nèi)存結(jié)構(gòu)的大小等設(shè)置嬉探,還會(huì)介紹各種參數(shù)的類(lèi)型。
- 日志文件:用了記錄MySQL實(shí)例對(duì)某種條件做出響應(yīng)時(shí)寫(xiě)入的文件棉圈,如錯(cuò)誤日志文件涩堤、二進(jìn)制日志文件、慢查詢(xún)?nèi)罩疚募竹⒉樵?xún)?nèi)罩疚募取?/li>
- socket文件:當(dāng)用UNIX域套接字方式進(jìn)行連接時(shí)需要的文件胎围。
- pid文件:MySQL實(shí)例的進(jìn)程ID文件。
- MySQL表結(jié)構(gòu)文件:用來(lái)存放MySQL表結(jié)構(gòu)定義文件。
- 存儲(chǔ)引擎文件:因?yàn)镸ySQL表存儲(chǔ)引擎的關(guān)系白魂,每個(gè)存儲(chǔ)引擎都會(huì)有自己的文件來(lái)保存各種數(shù)據(jù)汽纤。這些存儲(chǔ)引擎真正存儲(chǔ)了記錄和索引等數(shù)據(jù)。
1.日志文件
- 錯(cuò)誤日志:對(duì)MySQL的啟動(dòng)福荸、運(yùn)行蕴坪、關(guān)閉過(guò)程進(jìn)行了記錄。該文件不僅記錄了所有的錯(cuò)誤信息敬锐,也記錄一些警告信息或正確的信息辞嗡。
- 慢查詢(xún)?nèi)罩荆涸O(shè)置log_slow_queries為on后,開(kāi)啟慢查詢(xún)?nèi)罩局驮欤?dāng)查詢(xún)時(shí)間超過(guò)閾值(long_query_time來(lái)設(shè)置续室,默認(rèn)10,代表10s)的所有SQL語(yǔ)句都記錄到慢查詢(xún)?nèi)罩疚募汹搜ySQL 5.1開(kāi)始挺狰,可以將慢查詢(xún)的日志記錄放入一張表中,在mysql架構(gòu)下买窟,名為 slow_log丰泊。
- 查詢(xún)?nèi)罩荆河涗浟怂袑?duì)MySQL數(shù)據(jù)庫(kù)請(qǐng)求的信息,無(wú)論這些請(qǐng)求是否得到了正確的執(zhí)行始绍。默認(rèn)文件名:主機(jī)名.log瞳购。MySQL 5.1開(kāi)始,可以將查詢(xún)?nèi)罩镜挠涗浄湃雖ysql架構(gòu)下的general_log表中亏推。
- 二進(jìn)制日志:記錄了對(duì)MySQL數(shù)據(jù)庫(kù)執(zhí)行更改的所有操作学赛,不包括select和show這類(lèi)操作。(未完)
2.表結(jié)構(gòu)定義文件
每個(gè)表都會(huì)有與之對(duì)應(yīng)的文件吞杭,不論表采用何種存儲(chǔ)引擎盏浇,MySQL都有一個(gè)以frm為后綴名的文件,這個(gè)文件記錄了該表的表結(jié)構(gòu)定義芽狗。frm還用來(lái)存放視圖的定義绢掰。
3.存儲(chǔ)引擎文件
-
表空間文件
默認(rèn)配置下會(huì)有一個(gè)初始大小為10MB(在運(yùn)行中會(huì)增大),名為ibdata1的文件童擎,該文件就是默認(rèn)的表空間文件滴劲,可通過(guò)參數(shù)innodb_data_file_path對(duì)其進(jìn)行設(shè)置。
-
重做日志文件
默認(rèn)情況下顾复,在InnoDB存儲(chǔ)引擎的數(shù)據(jù)目錄下會(huì)有兩個(gè)名為ib_logfile0和ib_logfile1的文件班挖。官方稱(chēng)為存儲(chǔ)引擎的日志文件,這里稱(chēng)為重做日志文件捕透。它們記錄了對(duì)應(yīng)InnoDB存儲(chǔ)引擎的事務(wù)日志聪姿。
為了幫助事務(wù)的ACID中的持久性碴萧,必須將innodb_flush_log_at_trx_commit設(shè)置為1乙嘀,也就是每當(dāng)有事務(wù)提交時(shí)末购,就必須確保事務(wù)都已經(jīng)寫(xiě)入重做日志文件。那么當(dāng)數(shù)據(jù)庫(kù)因?yàn)橐馔獍l(fā)生宕機(jī)時(shí)虎谢,可以通過(guò)洪作日志文件恢復(fù)盟榴,并保證可以恢復(fù)已提交的事務(wù)。