mysql中,可用“concat(round(sum(DATA_LENGTH/1024/1024),2),'M')”語(yǔ)句配合“where table_schema='數(shù)據(jù)庫(kù)名稱(chēng)' AND table_name='表名稱(chēng)'”語(yǔ)句查詢(xún)表的大小。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
mysql怎么查詢(xún)表的大小
通過(guò)sql語(yǔ)句查詢(xún)整個(gè)數(shù)據(jù)庫(kù)的容量,或是單獨(dú)查看表所占容量。
1、要查詢(xún)表所占的容量,就是把表的數(shù)據(jù)和索引加起來(lái)就可以了
select sum(DATA_LENGTH)+sum(INDEX_LENGTH) from information_schema.tables where table_schema='數(shù)據(jù)庫(kù)名稱(chēng)';
上面獲取的結(jié)果是以字節(jié)為單位的,可以通過(guò)%1024在%1024的到M為單位的結(jié)果。
2、查詢(xún)所有的數(shù)據(jù)大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from tables;
3、查詢(xún)某個(gè)表的數(shù)據(jù)大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') from tables where table_schema='數(shù)據(jù)庫(kù)名稱(chēng)' AND table_name='表名稱(chēng)';
在mysql中有一個(gè)information_schema數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)中裝的是mysql的元數(shù)據(jù),包括數(shù)據(jù)庫(kù)信息、數(shù)據(jù)庫(kù)中表的信息等。所以要想查詢(xún)數(shù)據(jù)庫(kù)占用磁盤(pán)的空間大小可以通過(guò)對(duì)information_schema數(shù)據(jù)庫(kù)進(jìn)行操作。
information_schema中的表主要有:
schemata表:這個(gè)表里面主要是存儲(chǔ)在mysql中的所有的數(shù)據(jù)庫(kù)的信息
tables表:這個(gè)表里存儲(chǔ)了所有數(shù)據(jù)庫(kù)中的表的信息,包括每個(gè)表有多少個(gè)列等信息。
columns表:這個(gè)表存儲(chǔ)了所有表中的表字段信息。
statistics表:存儲(chǔ)了表中索引的信息。
user_privileges表:存儲(chǔ)了用戶(hù)的權(quán)限信息。
schema_privileges表:存儲(chǔ)了數(shù)據(jù)庫(kù)權(quán)限。
table_privileges表:存儲(chǔ)了表的權(quán)限。
column_privileges表:存儲(chǔ)了列的權(quán)限信息。
character_sets表:存儲(chǔ)了mysql可以用的字符集的信息。
collations表:提供各個(gè)字符集的對(duì)照信息。
collation_character_set_applicability表:相當(dāng)于collations表和character_sets表的前兩個(gè)字段的一個(gè)對(duì)比,記錄了字符集之間的對(duì)照信息。
table_constraints表:這個(gè)表主要是用于記錄表的描述存在約束的表和約束類(lèi)型。
key_column_usage表:記錄具有約束的列。
routines表:記錄了存儲(chǔ)過(guò)程和函數(shù)的信息,不包含自定義的過(guò)程或函數(shù)信息。
views表:記錄了視圖信息,需要有show view權(quán)限。
triggers表:存儲(chǔ)了觸發(fā)器的信息,需要有super權(quán)限。
推薦學(xué)習(xí):mysql視頻教程