當前位置:首頁 > IT技術(shù) > 數(shù)據(jù)庫 > 正文

【mysql表數(shù)據(jù)的大小】關(guān)于MySQL?查詢表數(shù)據(jù)大小的總結(jié)
2021-09-28 16:51:13

一:關(guān)于mysql表數(shù)據(jù)大小

我們知道m(xù)ysql存儲數(shù)據(jù)文件一般使用表空間存儲?

當mysql使用innodb存儲引擎的時候,mysql使用表存儲數(shù)據(jù)分為共享表空間和獨享表空間兩種方式?

·共享表空間:Innodb的所有數(shù)據(jù)保存在一個單獨的表空間里面,而這個表空間可以由很多個文件組成,一個表可以跨多個文件存在。?

所以其大小限制不再是文件大小的限制,而是其自身的限制??

-->innodb官方顯示表空間的最大限制為64TB?

·獨享表空間:每個表的數(shù)據(jù)以一個單獨的文件來存放,這個時候的單表限制,又變成文件系統(tǒng)的大小限制了? ? ? ??

在默認情況下,MySQL創(chuàng)建的MyISAM表允許的最大尺寸為4GB?

二:關(guān)于show table stautsG;中顯示內(nèi)容的解釋

Data_length: 150032--->表中數(shù)據(jù)的大小?

Index_length: 183107584--->表的索引的大小?

Data_free: 25238175744--->表空間的大小?

data_Free :如果是共享表空間 data_free 是共享表空間的大小而非數(shù)據(jù)的大小。?

如果是獨享表空間才是該表的剩余空間。?

如果表是分區(qū)存儲的,data_free 就是一個近似值而非精確值所以此時需要查詢?

select sum(data_free) from information_schema.partitions where table_schema = 'db_name' and table_name='tab_name';?

查詢所有數(shù)據(jù)庫的大小?

1:use information_schema;?

select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;?

2:select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='database_name';?

3: 查詢指定表的大小?

select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='database_name' and table_name='table_name';

三:判斷mysql I/0 性能的一種方式(網(wǎng)絡(luò)搜集供參考)

show global status like 'innodb_dblwr%'G??

如果innodb_dblwr_pages_writen/innodb_dblwr_writes遠小于64:1,說明磁盤寫入壓力不高? ? ? ? ??

show engine innodb statusG 查看緩沖池的方法。??

select table_name,data_length+index_length,table_rows from tables where table_schema='database_name' and table_name='table_name';?

本文摘自 :https://blog.51cto.com/l

開通會員,享受整站包年服務(wù)立即開通 >