mysql數據目錄

這篇文章是自己學習mysql隨手寫的雜記,編輯混亂且不夠嚴謹,請勿參考,謝謝!

mysql數據目錄是放mysql運行中產生數據的地方,也就是數據庫、表、視圖、觸發器等數據。數據庫目錄在什麼位置?可以通過在mysql命令行中輸入:show variables like ‘datadir’查看。

在數據目錄下,一個數據庫對應其下面的一個同名子目錄,子目錄下有一個db.opt專門描述該數據庫相關信息。表數據是如何存儲的呢?在數據庫同名目錄下,一個表會有一個表名.frm文件,用來描述表結構信息,而表名.ibd文件就是真實數據文件。

上圖紅框裏的內容就是mysql的數據目錄,綠色裏的是與數據庫同名的子目錄,黃色是表結構文件.frm和真實數據.ibd文件。都是成對出現,不過視圖只有.frm文件,因爲視圖只記錄邏輯關係,並不真實存儲數據,所以只有一個.frm文件。

mysql有兩類表空間,一個系統表空間,一個是獨立表空間。表空間是邏輯概念,其可以對應一個到多個系統文件。系統表空間ibdata1是默認存在的,它可以自增長。一個表對應一個獨立表空間,獨立表空間文件以.ibd結尾,如上圖所示。我們可以設置讓表中的數據是放在系統表空間還是獨立表空間,也可以修改已有表的表空間。

數據目錄下還有其他的文件如服務器進程文件,日誌文件等信息。

mysql有幾個重要的自帶的系統數據庫:

  • mysql:存儲的是用戶賬戶權限信息。
  • information_schema:存的是庫、表等信息,也就是元數據信息。
  • performance_schema:存的是mysql運行過程中的狀態信息,mysql的性能監控信息,比如執行了什麼sql,花費的內存、時間等。
  • sys:以試圖的形式把information_schema和performance_schema結合起來,便於查看。

完。

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