[精讚] [會員登入]
2467

[Mysql/MariaDB] 查看資料庫所占空間

查看資料庫在磁碟中所占空間

分享此文連結 //n.sfs.tw/10274

分享連結 [Mysql/MariaDB] 查看資料庫所占空間@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 05:50:14 最後編修
2016-11-23 01:11:04 By 張○○
 

自動目錄

法一

到mysql的目錄,以Centos為例:

# cd /var/lib/mysql

由於mysql是一個資料庫占一個目錄,所以下指令:

# du -Sh dbname
3.1M    dbname

這個方法簡單但有時得到的結果是錯的,因為如果資料庫的ENGINE 是Memory或是InnoDB,資料並非存於此目錄中。

法二

進到你的mysql console,選擇你的資料庫:
mysql> use dbname;
mysql> SHOW TABLE STATUS;

或直接下指令

# mysqlshow --status note

列出的

Data_length  +  Index_length  就是大小,單位是bytes.

這個方法的好處是可以列出每一個table所占的大小,但比較麻煩是沒有加總,您得自己加總


吃飯前禱告一下, 你先別跑...

法三

在[1]下方有kevingo網友提供一個複雜的語法來查看,我略為修改:

SELECT concat(table_schema,'.',table_name), 
concat(round(table_rows/1000,2),'K') rows, 
concat(round(data_length/(1024*1024),2),'M') DATA, 
concat(round(index_length/(1024*1024),2),'M') idx, 
concat(round((data_length+index_length)/(1024*1024),2),'M') total_size, 
round(index_length/data_length,2) idxfrac 
FROM information_schema.TABLES 
WHERE table_schema='note' 
ORDER BY data_length+index_length ;

請修改第8行的"note"為您的資料庫名

執行結果:(idxfrac:索引/資料的比值)

mysql> SELECT concat(table_schema,'.',table_name),
    -> concat(round(table_rows/1000,2),'K') rows,
    -> concat(round(data_length/(1024*1024),2),'M') DATA,
    -> concat(round(index_length/(1024*1024),2),'M') idx,
    -> concat(round((data_length+index_length)/(1024*1024),2),'M') total_size,
    -> round(index_length/data_length,2) idxfrac
    -> FROM information_schema.TABLES where table_schema='note'
    -> ORDER BY data_length+index_length ;
+-------------------------------------+-------+-------+-------+------------+---------+
| concat(table_schema,'.',table_name) | rows  | DATA  | idx   | total_size | idxfrac |
+-------------------------------------+-------+-------+-------+------------+---------+
| note.contact                        | 0.00K | 0.00M | 0.00M | 0.00M      |    2.23 |
| note.month_user                     | 0.04K | 0.00M | 0.00M | 0.00M      |    2.12 |
| note.log_nobody                     | 0.02K | 0.00M | 0.00M | 0.00M      |    2.04 |
| note.media_extra                    | 0.01K | 0.00M | 0.00M | 0.00M      |   13.13 |

... 略 ...


| note.test                           | 0.00K | 1.60M | 0.00M | 1.60M      |    0.00 |
| note.temp                           | 5.81K | 2.86M | 0.34M | 3.20M      |    0.12 |
+-------------------------------------+-------+-------+-------+------------+---------+
25 rows in set (0.00 sec)

上面的缺點還是沒有算加總,所以再改一下

SELECT round(sum(data_length)/(1024*1024),2) DATA_SUM, 
round(sum(index_length)/(1024*1024),2) INDEX_SUM,
round(sum(data_length+index_length)/(1024*1024),2) TOTAL 
FROM information_schema.TABLES 
where table_schema='note';

執行結果(單位是M)

mysql> SELECT round(sum(data_length)/(1024*1024),2) DATA_SUM,  
    -> round(sum(index_length)/(1024*1024),2) INDEX_SUM,
    -> round(sum(data_length)+sum(index_length),2) TOTAL
    -> FROM information_schema.TABLES
    -> where table_schema='note';
+----------+-----------+-------+
| DATA_SUM | INDEX_SUM | TOTAL |
+----------+-----------+-------+
|     6.35 |      0.64 |  6.99 |
+----------+-----------+-------+
1 row in set (0.00 sec)

參考資料

[1] Tsung's blog http://blog.longwin.com.tw/2009/02/view-mysql-table-size-2009/


原文 2013-09-10 14:42:11

 

 

 

 

 

END

你可能感興趣的文章

[Mysql] 建立叢集式資料庫4/4--觀察及測試 觀察及測試haproxy+galera建立Mysql的叢集式資料庫,並進行壓力測試

[Docker] Mariadb-Galera出現Incorrect definition of table mysql.column_stats:'hist_type'及 'histogram' 使用docker的Mariadb-galera出現'hist_type'及 'histogram'型別錯誤的解決方法。

[MYSQL] 設定字串欄位的預設值 新增表格的時候,字串欄位給予預設空值;數字欄位給預設數值;日期欄位給空值。

[MySQL] FIND_IN_SET函數,把多筆條件判斷弄成字串 SQL 我們如果要查找某個欄位是否為某個值的時候,如果要判斷的條件很多,可以用這個函數

[mysqldump] Mysqldump時出現記憶體錯誤Out of memory 當進行 mysqldump 時出現 Out of memory (Needed xxxxx bytes) 的錯誤,該如何處理?

[Mysql] 建立叢集式資料庫3/4 -- DB1設置及DB PROXY 使用galera建立Mysql的叢集式資料庫 ,繼續修正第1DB及運作PROXY

隨機好文

談借錢 人借錢時手心向上頭向下,人還錢時手心向下頭向上

UTF-8的網頁但IE8一片空白 UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

「許功蓋」的字以及源由 有玩過電腦一段時間的人,都聽過這個人(有一天我才發現7年級的竟然都不認識這個

[大型機台] 熱血高校躲避球 多少少年時光歲月耗在這個遊戲上,二十幾年前的那個時光,唯一想做的事就是把吃飯錢省下來拿去打一場五塊錢的電動,就算是沒錢也

對物品的感情 這個議題很奇怪,可是大部分的人都會有,物品是死的,壞了就淘汰,出新的就被替換。為何會有情感?