複製鏈接
請複製以下鏈接發送給好友

數據庫目錄

鎖定
數據庫目錄是數據庫服務器存放數據文件的地方,不僅包括有關表的文件,還包括數據文件和的服務器選項文件等。
中文名
數據庫目錄
外文名
Database directory
用    途
數據庫服務器存放數據文件的地方
類    型
計算機科學
內    容
表文件,數據文件,服務器文件等
學    科
數據庫
數據庫目錄是數據庫服務器存放數據文件的地方,不僅包括有關表的文件,還包括數據文件和的服務器選項文件。不同的分發,數據庫目錄的缺省位置是不同的。如果運行多個服務器,那麼您應該掌握所有數據目錄的位置。

數據庫目錄數據目錄的位置

缺省數據庫的位置編譯在服務器中。
如果您是在一個源程序分發包中安裝 MySQL,典型的缺省位置可能是 /usr/local/var;
如果在二進制分發包中安裝 MySQL,則為 /usr/local/mysql/ data;
在 RPM 文件中安裝,為 /var/lib/mysql。
對於windwos平台上的分發,其位置時BASEDIR\data
數據目錄的位置可以在啓動服務器時通過--datadir = / path / to / dir 明確地指定。如果您想將數據目錄放置在其他地方而非缺省的位置,則這個選項是有用的。

數據庫目錄數據目錄結構

MySQL數據庫為例,MySQL數據目錄包含了服務器管理的所有數據目錄,這些文件被組織成一個樹狀結構,通過利用Unix或Windows文件系統的層次結構直接實現。
每個數據庫對應於數據目錄下的一個目錄。
在一個數據庫中的表對應於數據目錄下的文件。
數據目錄也包含由服務器產生的幾個狀態文件,如日誌文件。這些文件提供了關於服務器操作的重要信息。對管理特別在出了問題而試圖確定問題原因時很有價值。例如,如果某個特定查詢殺死服務器,你可以通過檢查日誌文件判別搗亂的查詢。 [1] 

數據庫目錄數據庫表的表示法

數據庫中的每個表在數據庫目錄中都作為三個文件存在:一個格式(描述)文件、一個數據文件和一個索引文件。每個文件的基名是該表名,擴展名指明該文件的類型。擴展名如表1所示。數據和索引文件的擴展名指明該表是否使用較老的 ISAM 索引或較新的 MyISAM 索引。當發佈定義一個表結構的 CREATE TABLE tbl_name 語句時,服務器創建 tbl_name.frm 文件,它包含該結構的內部編碼。該語句還創建空的數據文件和索引文件,這些文件的初始信息表明沒有記錄和索引(如果 CREATE TABLE 語句包含索引説明,則該索引文件將反映這些索引)。描述表的文件的所有權和方式被設置為只允許對 MySQL 服務器用户的訪問。
當發佈 ALTER TABLE 語句時,服務器對 tbl_name.frm 重新編碼並修改數據文件和索引文件的內容以反映由該語句表明的結構變化。對於 CREATE 和 DROP INDEX 也是如此,因為服務器認為它們等價於 ALTER TABLE 語句。DROP TABLE 刪除代表該表的三個文件。
儘管可以通過刪除數據庫目錄中的對應某個表的三個文件來刪除該表,但不能手工創建或更改表。例如,如果 my_db 是當前的數據庫,DROP TABLE my_tbl 大致等價於下列命令:
來自於 SHOW TABLES my_db 的輸出結果正是 my_db 數據庫目錄中 .frm 文件基名的一個列表。某些數據庫系統維護一個列出了數據庫中的所有表的登記。但 MySQL 不這樣做,因為沒有必要,這個“登記”隱含在了數據目錄的結構中。 [1] 
參考資料