參數文件 my.cnf
- linux下文件名稱 my.cnf,能夠無文件啓動,且有幾個固定位置,按照固定位置一直讀下去,以最後一次加載爲準。
日誌文件
錯誤日誌 error log
二進制日誌 bin log
- Binlog記錄了對數據庫的全部更改,故不包含select/show操做。
-
幾種典型做用:mysql
- 恢復,能夠根據二進制日誌進行point-in-time恢復
- 複製,經過binlog進行數據庫與其餘數據庫同步
- 審計,根據binlog進行審計分析,是否有注入行爲
- 當使用事務類引擎時,因此未說起會被記錄到一個緩存中,等事務提交之後纔將緩存中的二進制數據寫入二進制文件中。
- 默認狀況下,並非每次寫的時候都同步到磁盤中,若是須要進行復制等即時操做,能夠將sync_binlog設置爲ON。
-
三種模式:linux
- statement:記錄sql語句。
- Row: 記錄行更改狀況。默認設置。update10W行,日誌文件增大13MB。
- Mixed:默認用statement,特殊時期用Row模式。例如用戶定義函數,UUID(),USER()等內置函數。
慢查詢日誌 slow query log
- 能夠將運行時間設置一個閾值,將超過閾值時間的sql所有記錄下來。 參數默認爲:long_query_time = 10;
- Mysql5.1之後將慢sql放入一張表slow_log中,默認爲csv引擎。
- 慢日誌能夠設置根據運行時間或邏輯IO次數記錄slow_log。
查詢日誌 log
socket文件 mysql.sock
- 本地鏈接mysql可使用UNIX域套接字。通常在/tmp目錄下mysql.sock。
pid文件 主機名.pid
- Mysql啓動時,會將本身的pid寫入主機名.pid文件中。
表結構文件 table_name.frm
- 不論採用何種引擎,mysql都有一個固定的表文件.frm來記錄當前表結構信息。
存儲引擎文件
表空間文件 ibdata1
- 默認配置下會有一個初始大小爲10MB左右的ibdata1文件。
- 例如insert buffer的緩衝文件。
重作日誌文件redo log
- 每一個存儲引擎至少有一個重作日誌文件組,每一個組下至少兩個重作日誌文件ib_logfile0和ib_logfile1。
- Redo log對性能有深刻影響。若是設置太大恢復時須要很長時間。若是過小則會頻繁出發checkpoint。
Redo log與二進制文件的區別:
1. 範圍不一樣:binlog會記錄全部操做,而redolog只記錄innodb自己的事務日誌。
2. 內容不一樣:binlog記錄的是一個事務的具體操做。redolog記錄的是一個頁的更改物理狀況。
3. 寫入時間不一樣:binlog僅在事務提交前提交,只磁盤io一次。在事務過程當中,不斷有redo日誌條目被寫入到重作日誌中。