MySQLでデータベース単位とテーブル単位のデータサイズ(容量)の調べ方
VPSの各種ファイルを整理している際に「MySQLも不要なデータを削除すればいいんじゃないか」と思い、その際にどのデータベース・テーブルが容量を使用しているのか調べたくなった。Adminerだと「サイズ - 算出」という項目はあるが、これはどうも即時反映されないっぽい(データ削除後等)。なので別の調べ方をメモ。
調べ方
データベース単位
SELECT table_schema, SUM(DATA_LENGTH + INDEX_LENGTH) /1024 /1024 AS MB FROM information_schema.tables GROUP BY table_schema ORDER BY SUM(DATA_LENGTH + INDEX_LENGTH) DESC;
テーブル単位
SELECT table_schema, SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 AS MB FROM information_schema.tables WHERE table_schema = '【テーブル名】';
所感
参考サイトによるとストアドプロシージャに登録すると便利とのこと。確かにこういったケースがストアドプロシージャの使いどころかもしれない。登録方法は過去記事参照。
関連記事
-
-
MySQLで「doesn't have a default value」エラーの対処
MySQLでINSERT時に「Field 'カラム名' doesn't have ...
-
-
MySQLでデータの集計時に1日の起点を任意の時間に変更する方法
MySQLで1日毎の集計を行う際、例えば2020/01/01のデータは2020/ ...
-
-
MySQLでスレッドの実行状況を表示しスレッドの経過時間チェックや特定スレッドを強制終了する方法
データベースサーバが重たく、原因を調査する機会があった。サーバ自体のメモリやCP ...
-
-
MySQLで特定のテーブルにパーティショニング設定し高速化を図る方法
以前に他社が設計されたログ系のテーブルを拝見した際にパーティショニング設定が行わ ...
-
-
MySQLでdatetime型にもインデックスを使用して高速化を図る方法
ログ関連のデータを格納するテーブルがあり、集計を行う際に非常に時間がかかった。レ ...