簡単3ステップ!MySQLで特定のテーブルのディスク使用量を確認する方法
MySQLテーブルのディスク使用量を確認する方法
方法1: INFORMATION_SCHEMA テーブルを使用する
- 以下のSQLクエリを実行します。
SELECT
TABLE_NAME,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS TABLE_SIZE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '<データベース名>'
ORDER BY TABLE_SIZE DESC;
このクエリは、指定されたデータベース内のすべてのテーブルの名前と、それぞれが占有しているディスク容量 (MB単位) を表示します。
方法2: SHOW TABLE STATUSコマンドを使用する
SHOW TABLE STATUS LIKE '<テーブル名>';
このクエリは、指定されたテーブルの名前、行数、ディスク使用量 (バイト単位) などの情報を表示します。
補足
- 上記のクエリを実行するには、MySQLデータベースへのアクセス権を持つユーザーとしてログインする必要があります。
- テーブルのディスク使用量は、実際よりも多少大きくなる場合があります。これは、MySQLが内部的に使用する追加スペースが考慮されていないためです。
- より詳細なディスク使用量情報を知りたい場合は、
mysqldb
コマンドラインツールを使用することができます。
SELECT
TABLE_NAME,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS TABLE_SIZE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test_db'
ORDER BY TABLE_SIZE DESC;
SHOW TABLE STATUS LIKE 'users';
- 上記のクエリは、サンプルとして記載されています。実際のデータベース名やテーブル名に合わせて変更してください。
- データベースへの接続情報や認証情報などは、環境に合わせて設定してください。
実行方法
以下の手順で、上記サンプルコードを実行することができます。
- MySQLクライアントツールを起動します。
- 上記のサンプルコードをコピーして、MySQLクライアントツールに貼り付けます。
- Enterキーを押して、クエリを実行します。
出力例
+--------------------+------------+-------------+
| TABLE_NAME | TABLE_SIZE |
+--------------------+------------+-------------+
| users | 1.23 |
| products | 0.54 |
| orders | 0.12 |
+--------------------+------------+-------------+
MySQLテーブルのディスク使用量を確認するその他の方法
方法3: システムファイルを使用する
- MySQLデータディレクトリに移動します。
du -sh <テーブル名>.frm
このコマンドは、指定されたテーブルの .frm
ファイルのサイズ (MB単位) を表示します。
方法4:サードパーティ製のツールを使用する
MySQLのディスク使用量を確認できるサードパーティ製のツールがいくつかあります。これらのツールは、より詳細な情報や、GUIインターフェースを提供している場合があります。
- 方法3は、
.frm
ファイルのみのサイズを報告することに注意してください。テーブルに関連する他のファイル (インデックスファイルなど) のサイズは含まれません。 - サードパーティ製のツールを使用する場合は、ライセンス情報を確認する必要があります。
mysql