在mysql中,可以利用show語句配合datadir來查看表格資料存放在哪裡,datadir是資料目錄對應的系統變量,語法為「show variables like 'datadir';」;透過這個指令可以查看資料目錄儲存的具體位置。
本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
我們都知道,MySQL需要支援持久化,它把資料儲存在磁碟中,在作業系統中會把管理磁碟的裝置叫做文件系統,對於我們研發而言,我們大多數只會關心MySQL的索引、SQL效能最佳化,而對於資料是怎麼儲存、存在哪裡這類問題就像是一個黑盒子。
1 資料儲存在檔案系統
我們常用的儲存引擎InnoDB都是把表格儲存在檔案系統上的(即磁碟),當需要讀取數據時,InnoDB會從檔案系統中把資料讀取出來回傳給我們;當需要寫入資料時,InnoDB又會把資料寫回檔案系統中,那麼InnoDB儲存引擎的資料是如何在檔案系統中儲存的呢?
2 MySQL資料目錄
MySQL伺服器在啟動時,會從檔案系統的某個目錄載入文件,執行時產生的資料也會寫入儲存到檔案系統的這個目錄中,這個目錄就是資料目錄
2.1 MySQL資料目錄在哪
MySQL資料目錄對應一個系統變數datadir , 可以透過該指令查看資料目錄儲存的具體位置:
show variables like 'datadir';
也就是說我本機的MySQL的資料目錄就在/usr/local/mysql/data/
3 資料目錄的結構
我們知道,MySQL在運行過程中會產生的資料包括:我們創建的資料庫、表格、視圖、伺服器等,此外還有MySQL為了程式更好運作而創建的額外數據,接下來,我們具體來看下數據目錄下的內容~
3.1 資料庫在檔案系統中的表示
當我們執行create database mydb 語句來建立一個資料庫時,MySQL會做兩個工作:
在資料目錄下建立一個和資料庫名稱同名的資料夾mydb
#在mydb下建立一個名為db.opt的文件,這個檔案包含了這個資料庫的各種屬性,像是資料庫的字元集、比較規則之類的
目前,透過執行show databases指令,可以查看到
我本機建立了的資料庫有:
然後我進入目錄/usr/local/mysql/data/ 下查看是不是會有上面的這些資料夾:
的確,高亮的資料夾就一一對應了MySQL中的資料庫。不過如果仔細看的話,information_schema其實是不存在的,由於它比較特殊,所以MySQL的設計者對它的實作進行了特殊對待,因此沒有對應的資料庫目錄。
推薦學習:mysql影片教學
#以上是mysql的表怎麼看存在哪裡了的詳細內容。更多資訊請關注PHP中文網其他相關文章!