在mysql中,可以利用show語(yǔ)句配合datadir來(lái)查看表數(shù)據(jù)存放在哪里,datadir是數(shù)據(jù)目錄對(duì)應(yīng)的一個(gè)系統(tǒng)變量,語(yǔ)法為“show variables like 'datadir';”;通過(guò)該命令可以查看數(shù)據(jù)目錄存儲(chǔ)的具體位置。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
mysql的表怎么看存在哪里了
我們都知道,MySQL需要支持持久化,它把數(shù)據(jù)存儲(chǔ)在磁盤(pán)中,在操作系統(tǒng)中會(huì)把管理磁盤(pán)的設(shè)備叫做文件系統(tǒng),對(duì)于我們研發(fā)而言,我們大多數(shù)只會(huì)關(guān)心MySQL的索引、SQL性能優(yōu)化,而對(duì)于數(shù)據(jù)是怎么存儲(chǔ)、存在哪里這類(lèi)問(wèn)題就像是一個(gè)黑盒。
1 數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)
我們常用的存儲(chǔ)引擎InnoDB都是把表存儲(chǔ)在文件系統(tǒng)上的(即磁盤(pán)),當(dāng)需要讀取數(shù)據(jù)時(shí),InnoDB會(huì)從文件系統(tǒng)中把數(shù)據(jù)讀取出來(lái)返回給我們;當(dāng)需要寫(xiě)入數(shù)據(jù)時(shí),InnoDB又會(huì)把數(shù)據(jù)寫(xiě)回到文件系統(tǒng)中,那么InnoDB存儲(chǔ)引擎的數(shù)據(jù)是如何在文件系統(tǒng)中存儲(chǔ)的呢?
2 MySQL數(shù)據(jù)目錄
MySQL服務(wù)器在啟動(dòng)時(shí),會(huì)從文件系統(tǒng)的某個(gè)目錄中加載文件,在運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù)也會(huì)寫(xiě)入存儲(chǔ)到文件系統(tǒng)的這個(gè)目錄中,這個(gè)目錄就是數(shù)據(jù)目錄
2.1 MySQL數(shù)據(jù)目錄在哪
MySQL數(shù)據(jù)目錄對(duì)應(yīng)一個(gè)系統(tǒng)變量 datadir , 可以通過(guò)該命令查看數(shù)據(jù)目錄存儲(chǔ)的具體位置:
show variables like 'datadir';
也就是說(shuō)我本機(jī)的MySQL的數(shù)據(jù)目錄就在/usr/local/mysql/data/
3 數(shù)據(jù)目錄的結(jié)構(gòu)
我們知道,MySQL在運(yùn)行過(guò)程中會(huì)產(chǎn)生的數(shù)據(jù)包括:我們創(chuàng)建的數(shù)據(jù)庫(kù)、表、視圖、服務(wù)器等,此外還有MySQL為了程序更好運(yùn)行而創(chuàng)建的額外數(shù)據(jù),接下來(lái),我們具體來(lái)看下數(shù)據(jù)目錄下的內(nèi)容~
3.1 數(shù)據(jù)庫(kù)在文件系統(tǒng)中的表示
當(dāng)我們執(zhí)行create database mydb 語(yǔ)句來(lái)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)時(shí),MySQL會(huì)做兩個(gè)工作:
在數(shù)據(jù)目錄下創(chuàng)建一個(gè)和數(shù)據(jù)庫(kù)名稱(chēng)同名的文件夾mydb
在mydb下創(chuàng)建一個(gè)名為db.opt的文件,這個(gè)文件中包含了該數(shù)據(jù)庫(kù)的各種屬性,比如數(shù)據(jù)庫(kù)的字符集、比較規(guī)則之類(lèi)的
當(dāng)前,通過(guò)執(zhí)行show databases命令,可以查看到
我本機(jī)創(chuàng)建了的數(shù)據(jù)庫(kù)有:
然后我進(jìn)入目錄/usr/local/mysql/data/ 下查看是不是會(huì)有上面的這些文件夾:
的確,高亮的文件夾就一一對(duì)應(yīng)了MySQL中的數(shù)據(jù)庫(kù)。不過(guò)如果仔細(xì)看的話,information_schema其實(shí)是不存在的,由于它比較特殊,所以MySQL的設(shè)計(jì)者對(duì)它的實(shí)現(xiàn)進(jìn)行了特殊對(duì)待,因此沒(méi)有對(duì)應(yīng)的數(shù)據(jù)庫(kù)目錄。
推薦學(xué)習(xí):mysql視頻教程