mysql文件目錄格式及存儲位置

MYSQL中建立任何一張數據表,在其數據目錄對應的數據庫目錄下都有對應表的.frm文件,.frm文件是用來保存每個數據表的元數據(meta)信息,包括表結構的定義等,.frm文件跟數據庫存儲引擎無關,也就是任何存儲引擎的數據表都必須有.frm文件,命名方式爲數據表名.frm,如user.frm.

.frm文件可以用來在數據庫崩潰時恢復表結構。

MySQL文件包括MySQL所建數據庫文件MySQL所用引擎創建的數據庫文件

.frm 文件與操作系統和數據庫引擎無關,都有這麼個與表名同名文件。

MyISAM引擎的文件:

.myd 即 my data,表數據文件

.myi 即my index,索引文件

.log 日誌文件。

InnoDB引擎的文件:

採用表空間(tablespace)來管理數據,存儲表數據和索引,

InnoDB數據庫文件(即InnoDB文件集,ib-file set):

ibdata1、ibdata2等:系統表空間文件,存儲InnoDB系統信息和用戶數據庫表數據和索引,所有表共用。

.ibd文件:單表表空間文件,每個表使用一個表空間文件(file per table),存放用戶數據庫表數據和索引。

日誌文件: ib_logfile1、ib_logfile2

################################################################################################################################################################

Innodb存儲引擎管理主要基於兩個文件:表空間數據文件和日誌文件。

InnoDB存儲它的表&索引在一個表空間中,表空間可以包含數個文件(或原始磁盤分區)。

如果沒有指定InnoDB配置選項,MySQL將在MySQL數據目錄下創建一個名爲ibdata1的10MB大小的自動擴展數據文件,以及兩個名爲ib_logfile0和ib_logfile 1的5MB大小的日誌文件。

ibdata1的大小在my.cnf文件中配置:innodb_data_file_path = ibdata1:10G:autoextend

可以設置最大數據文件限制,以免超過系統支持的最大文件:

innodb_data_file_path = ibdata1:100M:autoextend:max:500M

日誌文件大小在my.cnf文件中配置:innodb_log_file_size  = 256M  innodb_log_files_in_group = 2

Innodb存儲引擎可以使用共享表空間或獨立表空間,使用獨立表空間時,需要將innodb_file_per_table加到配置文件中,也可以在variables中開啓。

共享表空間是將所有的表的數據和索引保存在ibdata1中,這樣的缺點是拷貝時必須拷貝整個大文件,而且刪除表後容易產生碎片。

獨立表空間是爲每個表建立一個.ibd文件用來存儲數據和.frm用來存數據詞典信息,這樣,mysql就將innodb表的數據存入各自對應的.ibd文件中了,但結構等信息還是會寫入ibdata。

innodb_file_per_table變量只能在配置文件裏修改,不能使用set global ...

將innodb_file_per_table關閉之後,建立innoDB表時只生成.frm文件,數據和索引都保存在共享表空間ibdata1中。

################################################################################################################################################################

MySQL數據庫存放位置:

1、MySQL如果使用MyISAM存儲引擎,數據庫文件類型就包括.frm、.MYD、.MYI,默認存放位置是

C:\MySQL\MySQL Server 5.5\data\mysql


2、MySQL如果使用InnoDB存儲引擎,數據庫文件類型就包括.frm、ibdata1、.ibd,存放位置有兩個,

.frm文件默認存放位置是

C:\ProgramData\MySQL\MySQL Server 5.5\data

ibdata1、.ibd文件默認存放位置是MySQL安裝目錄下的data文件夾


經測試,當創建一張表時,該目錄下的ibdata1文件的修改日期會更新爲創建表時的日期;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章