色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

MySQL數(shù)據(jù)庫文件詳解

老白2年前10瀏覽0評論
MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛使用于網(wǎng)站開發(fā)、軟件開發(fā)和其他數(shù)據(jù)處理領(lǐng)域,其數(shù)據(jù)存儲在文件中,本文將詳解MySQL數(shù)據(jù)庫文件。 MySQL的數(shù)據(jù)文件主要由三類文件組成:frm文件、MYD文件和MYI文件。 frm文件存儲MySQL表的定義,該文件包括表結(jié)構(gòu)及其元數(shù)據(jù)信息。MySQL在創(chuàng)建表時會自動生成一個frm文件。 MYD文件存儲MySQL表的數(shù)據(jù),該文件包括字段和數(shù)據(jù)的內(nèi)容。當MySQL表中有記錄被添加、更新或刪除時,MYD文件會隨之改變。 MYI文件是MySQL表的索引文件,用于加速MySQL數(shù)據(jù)庫的查詢,該文件包括索引值和數(shù)據(jù)結(jié)構(gòu)。MYI文件保存的是數(shù)據(jù)在MySQL表中的位置信息。 MySQL數(shù)據(jù)庫中的所有文件都存儲在數(shù)據(jù)庫的 datadir 目錄下。通過SHOW VARIABLES命令可以查看datadir的具體路徑。 以下代碼演示如何創(chuàng)建表和查看frm、MYD和MYI文件的具體位置:
CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
SHOW VARIABLES LIKE '%datadir%';
執(zhí)行完上述代碼后,MySQL會在datadir目錄下生成一個名為example的文件夾,其中包括example.frm、example.MYD和example.MYI三個文件。 注意:以上代碼中的ENGINE和CHARSET參數(shù)是可選的,可根據(jù)實際需求進行設(shè)置。 我們可以通過以下代碼查看example表在文件中的大小:
SELECT concat(table_name,'.',engine) as `table/Engine`,
concat(round(data_length/(1024*1024),2),' MB') as `Data Size`,
concat(round(index_length/(1024*1024),2),' MB') as `Index Size`,
concat(round((data_length+index_length)/(1024*1024),2),' MB') as `Total Size`,
round(index_length/data_length,2) as `Index/Total`
FROM information_schema.tables
WHERE table_schema='database_name' and table_name='example';
其中,database_name需替換為實際的數(shù)據(jù)庫名。執(zhí)行以上代碼后,MySQL會返回example表的大小信息,包括數(shù)據(jù)大小、索引大小、總大小和索引占比信息。 通過以上代碼演示,我們可以更深入地了解MySQL數(shù)據(jù)庫文件的存儲方式和具體位置,有助于更好地管理和維護MySQL數(shù)據(jù)庫。