一:關於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';