一:關於mysql表資料大小

我們知道mysql儲存資料檔案一般使用表空間儲存

當mysql使用innodb儲存引擎的時候,mysql使用表儲存資料分為共享表空間和獨享表空間兩種方式

·共享表空間:Innodb的所有資料儲存在一個單獨的表空間裡面,而這個表空間可以由很多個檔案組成,一個表可以跨多個檔案存在。

所以其大小限制不再是檔案大小的限制,而是其自身的限制

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

·獨享表空間:每個表的資料以一個單獨的檔案來存放,這個時候的單表限制,又變成檔案系統的大小限制了

在預設情況下,MySQL建立的MyISAM表允許的最大尺寸為4GB

二:關於show table stauts\G;中顯示內容的解釋

Data_length: 150032--->表中資料的大小

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

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

data_Free :如果是共享表空間 data_free 是共享表空間的大小而非資料的大小。

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

如果表是分割槽儲存的,data_free 就是一個近似值而非精確值所以此時需要查詢

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

查詢所有資料庫的大小

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 效能的一種方式(網路蒐集供參考)

show global status like 'innodb_dblwr%'\G

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

show engine innodb status\G 檢視緩衝池的方法。

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