這裡介紹如何使用 MySQL 的指令查詢資料庫在硬碟上的使用空間大小。
MySQL 與 MariaDB 資料庫是一個在 Linux 系統上被廣泛運用的資料庫,許多的網站也都會搭配 MySQL/MariaDB 來架設(例如 WordPress 等),這裡我們將介紹可用來查詢資料庫與資料表大小的 MySQL 指令。
登入 MySQL/MariaDB
若要查詢整個 MySQL/MariaDB 中所有的資料庫,就要使用 root
帳號登入:
mysql -u root -p
輸入 root
密碼之後,即可進入 MySQL/MariaDB 的互動式操作環境,接著就可以輸入各種查詢的 MySQL 指令了。
查詢所有資料庫大小
若要查詢每個資料庫(databases)的資料大小,可以使用這段指令:
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) | +--------------------+--------------+ | blog | 313.24 | | information_schema | 0.08 | | mysql | 0.63 | | performance_schema | 0.00 | | tientao_www_dev | 1.13 | | www_sbi_tw | 1.75 | | www_travelnotes_tw | 2.31 | +--------------------+--------------+ 7 rows in set (0.02 sec)
查詢單一資料庫大小
若只要查詢某個特定的資料庫大小,可以改用這段指令:
SELECT table_schema AS "Database Name", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size in (MB)" FROM information_schema.TABLES WHERE table_schema = "YOUR_DB_NAME";
其中 YOUR_DB_NAME
要替換成自己的資料庫名稱。以 blog
資料庫為例,輸出會類似這樣:
+---------------+--------------+ | Database Name | Size in (MB) | +---------------+--------------+ | blog | 314.24 | +---------------+--------------+ 1 row in set (0.01 sec)
查詢資料表大小
若要查詢某個資料庫中所有的資料表(tables)的大小,可以使用這段指令:
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 = "YOUR_DB_NAME" ORDER BY (data_length + index_length) DESC;
其中 YOUR_DB_NAME
要替換成自己的資料庫名稱。以 blog
資料庫為例,查詢的結果會類似這樣(這是一個 WordPress 網站的資料表):
+--------------------------+--------------+ | Table Name | Size in (MB) | +--------------------------+--------------+ | wp_posts | 238.55 | | wp_postmeta | 49.61 | | wp_redirection_404 | 19.40 | | wp_comments | 3.48 | | wp_options | 1.53 | | wp_yoast_seo_links | 0.48 | | wp_term_relationships | 0.45 | | wp_redirection_logs | 0.24 | | wp_users | 0.06 | | wp_usermeta | 0.05 | | wp_terms | 0.05 | | wp_termmeta | 0.05 | | wp_term_taxonomy | 0.05 | | wp_commentmeta | 0.05 | | wp_ewwwio_images | 0.04 | | wp_links | 0.03 | | wp_redirection_items | 0.02 | | wp_aiowps_events | 0.02 | | wp_yoast_seo_meta | 0.02 | | wp_aiowps_login_lockdown | 0.02 | | wp_aiowps_login_activity | 0.02 | | wp_aiowps_global_meta | 0.02 | | wp_aiowps_failed_logins | 0.02 | | wp_hugeit_lightbox | 0.00 | | wp_redirection_groups | 0.00 | | wp_filemeta | 0.00 | | wp_statistics_search | 0.00 | +--------------------------+--------------+ 27 rows in set (0.01 sec)
查詢實際磁碟用量
如果想知道 MySQL/MariaDB 在硬碟上的實際大小,可以直接在 Linux shell 中以 du
指令查詢:
sudo du -h /var/lib/mysql
212K /var/lib/mysql/performance_schema 180K /var/lib/mysql/www_travelnotes_tw 21M /var/lib/mysql/blog 1004K /var/lib/mysql/mysql 168K /var/lib/mysql/tientao_www_dev 168K /var/lib/mysql/www_sbi_tw 490M /var/lib/mysql