簡(jiǎn)介
本文主要講解Mysql主要的文件,分為Mysql Server相關(guān)文件和InnoDB存儲(chǔ)引擎相關(guān)文件。
Mysql Server相關(guān)文件
配置文件
定義mysql全局配置信息,例如端口定義port=3306。在linux下,一般放在/etc/my.cnf,/etc/mysql/my.cnf(可以通過(guò)mysql--help | grep my.cnf查看)。
日志文件
用來(lái)記錄某些請(qǐng)求/響應(yīng)信息的文件,主要分為:
- 錯(cuò)誤日志:對(duì)mysql的啟動(dòng)、運(yùn)行、關(guān)閉過(guò)程進(jìn)行了記錄。該文件不僅記錄了所有的錯(cuò)誤信息,還記錄一些告警信息或者正確的信息,可以通過(guò)
show variables like '%log_error%';查看錯(cuò)誤日志的存放路徑,默認(rèn)命名主機(jī)名.err。 - 慢查詢?nèi)罩荆嚎梢远ㄎ豢赡艽嬖趩?wèn)題的SQL語(yǔ)句,從而進(jìn)行SQL語(yǔ)句層面的優(yōu)化。
- 主要用來(lái)記錄查詢時(shí)間>
long_query_time(默認(rèn)10秒)的SQL。 -
slow_query_log=ON開(kāi)啟/關(guān)閉慢查詢?nèi)罩?,默認(rèn)是開(kāi)啟的。 - 可以通過(guò)
show variables like '%slow_query_log_file%';查看慢查詢?nèi)罩敬娣盼恢?,接著通過(guò)mysqldumpslow /data/mysql/mysql-slow.log查看詳細(xì)信息,也可以通過(guò)表來(lái)查看select * from mysql.slow_log;。 - 另外還有一個(gè)重要的配置參數(shù)
log-queries-not-using-indexes:未使用索引的查詢也被記錄到慢查詢?nèi)罩局校蛇x項(xiàng))。
- 主要用來(lái)記錄查詢時(shí)間>
- 查詢?nèi)罩荆河涗浰械恼?qǐng)求響應(yīng)信息,默認(rèn)命名
主機(jī)名.log。 - 二進(jìn)制日志:記錄了對(duì)mysql執(zhí)行更改的操作(詳細(xì)信息參考這篇文章:Mysql——binlog)。主要有以下幾個(gè)作用:
- 恢復(fù):可以通過(guò)point in time進(jìn)行某些數(shù)據(jù)的恢復(fù);
- 復(fù)制:mysql主從復(fù)制是基于二進(jìn)制日志復(fù)制實(shí)現(xiàn)實(shí)時(shí)同步的;
- 審計(jì):用戶可以通過(guò)二進(jìn)制日志進(jìn)行審計(jì),判斷是否有注入攻擊。
表結(jié)構(gòu)文件
用來(lái)存放mysql表結(jié)構(gòu)定義,文件后綴.frm;
socket文件
當(dāng)用UNIX域套接字方式進(jìn)行連接時(shí)需要的文件;可以通過(guò)show variables like 'socket';查看,一般放到/tmp/mysql.sock;
pid文件
Mysql實(shí)例的進(jìn)程文件;可以通過(guò)show variables like 'pid_file';查看。
InnoDB存儲(chǔ)引擎相關(guān)文件
- 表空間文件
- 重做日志文件
詳細(xì)信息可以參考這篇文章Mysql——InnoDB存儲(chǔ)引擎架構(gòu)