1. 程式人生 > >MYSQL文件結構(日誌文件待補充)

MYSQL文件結構(日誌文件待補充)

-s 文本編輯 相關 style 錯誤日誌 存儲過程 就是 pass 路徑

要點概論

1. 引言

2. 數據文件

3. 日誌文件

1. 引言

  每個 MYSQL 數據庫至少有兩個操作系統文件:一個數據文件和一個日誌文件。

  數據文件包含數據和對象,例如表,索引,存儲過程和視圖。

  日誌文件包含恢復數據庫中的所有事物所需的信息。

  為了便於分配和管理,可以將數據文件集合起來放到文件組中。

2. 數據文件

  在 MYSQL 中每一個數據庫都會在定義好(或者默認)的數據目錄下存在一個以數據庫名字命名的文件夾,用來存放該數據庫中各種表數據文件。

  不同的 MYSQL 存儲引擎有各自不同的數據文件,存放位置也有區別,多數存儲引擎的數據文件都存放在和 MyISAM 數據文件位置相同的目錄下,但是每個數據文件的擴展名卻各不一樣。

  如 MyISAM 用 ‘.MYD’ 作為擴展名, InnoDB 用 ‘.idb’ ,Archive 用 ‘.arc‘ ,CSV 用 ‘.csv‘ ,等等。

  

  2.1 “.frm” 文件

    與表相關的元數據(meta)都存放在 “.frm” 文件中,包括表結構和定義信息等。不論是什麽存儲引擎,每一個表都會有一個以表命名的 “.frm” 文件。

    所有的 “.frm” 文件都存放在所屬數據庫的文件夾下面。

  2.2. “.MYD” 文件

    “.MYD” 文件也是 MyISAM 存儲引擎專用,存放 MyISAM 表的數據。每一個 MyISAM 表都會有一個 “.MYD” 文件與之對應,同樣存放於所屬數據庫的文件夾下,和 “.frm” 文件在一起。

  2.3. “.MYI” 文件

    “.MYI” 文件也是專屬於 MyISAM 存儲引擎的,主要存放 MyISAM 表的索引相關信息。

    對於 MyISAM 存儲來說,可以被 cache 的內容主要就是來源於 “.MYI” 文件中。

    每一個 MyISAM 表對應一個 “.MYI” 文件,存放位置和 “.frm” 以及 “.MYD” 一樣。

  2.4. “idb” 文件和 ibdata 文件

    這兩種文件都是存放 InnoDB 數據的文件,

    之所以有兩種文件來存放 InnoDB 的數據(包括索引),是因為 InnoDB 的數據存儲方式能夠通過配置來決定是使用共享空間存放存儲數據,還是獨享表空間存放存儲數據。

    獨享表空間存儲方式使用 “.idb” 文件來存放數據,且每個表一個 “.idb” 文件,文件存放在和 MyISAM 數據相同的位置。

    如果選用共享存儲表空間來存放數據,則會使用 ibdata 文件來存放,所有表共同使用一個(或者多個,可自行配置)ibdata 文件。

    ibdata 文件可以通過 innodb_data_home_dir 和 innodb_data_file_path 兩個參數共同配置組成,

    innodb_data_home_dir 配置數據存放的總目錄,而 innodb_data_file_path 配置每一個文件的名稱。

    當然,也可以不配置 innodb_data_home_dir 而直接在 innodb_data_file_path 參數配置的時候使用絕對路徑來完成配置。

     innodb_data_file_path 中可以一次配置多個 ibdata 文件。

    文件可以是指定大小,也可以是自動擴展的,但是 InnoDB 限制了只有最後一個 ibdata 文件能夠配置成自動擴展類型。

    當需要添加新的 ibdata 文件的時候,只能添加在 InnoDB_data_file_path 配置的最後,而且必須重啟 MySQL 才能完成 ibdata的添加工作。

3. 日誌文件(待補充)

  3.1 錯誤日誌

    PASS

  3.2 二進制日誌

    PASS

  3.3 查詢日誌

    查詢日誌(Query Log)記錄 MySQL 中所有的 query ,通過 “--log[=fina_name]” 參數來打開該功能。

    由於記錄了所有的 query ,包括所有的 SELECT ,體積比較大,開啟後對性能也有較大的影響,所以請慎用該功能。

    一般只用於追蹤某些特殊的 SQL 性能問題時才會短暫打開該功能。

    默認的查詢日誌文件名為 hostname.log。

  3.4 慢查詢日誌

    慢查詢日誌(Slow Query Log)中記錄的時執行時間較長的 query ,也就時人們常說的 “慢查詢” 。

    通過 “--log-slow-queries[=file_name]” 參數來打開該功能並設置記錄位置和文件名。

    默認文件名為 hostname_slow.log ,默認目錄也是數據目錄。

    

    慢查詢日誌采用的時簡單的文本格式,可以通過各種文本編輯器查看其中的內容。

    其中記錄了語句執行的時刻,執行所消耗的時間,執行用戶,連接主機等相關的信息。

    MySQL 還提供了專門用來分析慢查詢日誌的工具程序 mysqlslowdump ,用來幫助數據庫管理人員解決可能存在的性能問題。

    

  3.5 InnoDB 的在線 redo 日誌

    PASS

MYSQL文件結構(日誌文件待補充)