mysql-innodb-文件

參數文件 my.cnf

  • linux下文件名稱 my.cnf,能夠無文件啓動,且有幾個固定位置,按照固定位置一直讀下去,以最後一次加載爲準。

日誌文件

錯誤日誌 error log

  • 記載着啓動,關閉,運行時問題

二進制日誌 bin log

  • Binlog記錄了對數據庫的全部更改,故不包含select/show操做。
  • 幾種典型做用:mysql

    1. 恢復,能夠根據二進制日誌進行point-in-time恢復
    2. 複製,經過binlog進行數據庫與其餘數據庫同步
    3. 審計,根據binlog進行審計分析,是否有注入行爲
  • 當使用事務類引擎時,因此未說起會被記錄到一個緩存中,等事務提交之後纔將緩存中的二進制數據寫入二進制文件中。
  • 默認狀況下,並非每次寫的時候都同步到磁盤中,若是須要進行復制等即時操做,能夠將sync_binlog設置爲ON。
  • 三種模式:linux

    1. statement:記錄sql語句。
    2. Row: 記錄行更改狀況。默認設置。update10W行,日誌文件增大13MB。
    3. Mixed:默認用statement,特殊時期用Row模式。例如用戶定義函數,UUID(),USER()等內置函數。

慢查詢日誌 slow query log

  • 能夠將運行時間設置一個閾值,將超過閾值時間的sql所有記錄下來。 參數默認爲:long_query_time = 10;
  • Mysql5.1之後將慢sql放入一張表slow_log中,默認爲csv引擎。
  • 慢日誌能夠設置根據運行時間或邏輯IO次數記錄slow_log。

查詢日誌 log

  • 跟slow_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日誌條目被寫入到重作日誌中。
相關文章
相關標籤/搜索