Step1)查詢資料庫的大小
SELECT table_schema AS "Database Name",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2)
AS "Size in (MB)"
FROM information_schema.TABLES
GROUP BY table_schema;
執行結果如下
+--------------------+--------------+
| Database Name | Size in (MB) |
+--------------------+--------------+
| djangolxr | 0.02 |
| dmoj | 48.02 |
| information_schema | 0.00 |
| judgeserver | 0.07 |
| linux | 1255.83 |
Step2)查詢指定資料庫linux的每個資料表大小
SELECT table_name AS "Table Name",
ROUND(((data_length + index_length) / 1024 / 1024), 2)
AS "Size in (MB)"
FROM information_schema.TABLES
WHERE table_schema = "dmoj"
ORDER BY (data_length + index_length) DESC;
執行結果如下
+--------------------------------------------+--------------+
| Table Name | Size in (MB) |
+--------------------------------------------+--------------+
| judge_submission | 15.97 |
| judge_submissionsource | 10.88 |
| reversion_version | 6.72 |
| django_session | 4.64 |
| judge_submissiontestcase | 2.91 |
Step3)實際資料庫占用磁碟的大小
#sudo du -h /var/lib/mysql
101M /var/lib/mysql/#innodb_redo
103M /var/lib/mysql/dmoj
1.3G /var/lib/mysql/linux
2.7M /var/lib/mysql/lxr