Open1

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

IchiIchi

テーブル容量の確認方法

データ量把握のために、各々のテーブルごとにデータサイズを確認する必要があったときのメモ

このコマンドで結果を出力することができる

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サイズ

参考

https://www.wakuwakubank.com/posts/323-mysql-capacity/