Open1
MySQLを使用するときの便利コマンドとか

テーブル容量の確認方法
データ量把握のために、各々のテーブルごとにデータサイズを確認する必要があったときのメモ
このコマンドで結果を出力することができる
SELECT table_name, engine, table_rows AS tbl_rows,avg_row_length AS rlen, floor((data_length+index_length)/1024/1024) AS allmb, floor((data_length)/1024/1024) AS dmb, floor((index_length)/1024/1024) AS imb FROM information_schema.tables
WHERE table_schema=database()
ORDER BY (data_length+index_length) DESC;
出力結果の例は以下の通り
+-----------------------------------------+--------+----------+--------+-------+------+------+
| table_name | engine | tbl_rows | rlen | allmb | dmb | imb |
+-----------------------------------------+--------+----------+--------+-------+------+------+
| test_tbl | InnoDB | 16013 | 33495 | 511 | 511 | 0 |
| user_tbl | InnoDB | 1909058 | 152 | 427 | 277 | 150 |
| id_tbl | InnoDB | 10283 | 42676 | 418 | 418 | 0 |
+-----------------------------------------+--------+----------+--------+-------+------+------+
3 rows in set (0.00 sec)
allmbがMBのことなのでtest_tblのサイズは511MBになる
- rlen → 平均レコード長
- tbl_rows → 行数
- imb → indexのMBサイズ
参考