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にてSELECT時にdate型のカラムから年齢を計算し取得する方法
MySQLにdate型のカラムに誕生年月日が格納されており、そこから年齢を計算し ...
-
PHP / MySQLで2038年問題の対策
先日打ち合わせの際に「タイムスタンプを使ってユニークキーに云々~~」といったよう ...
-
MySQLでオートインクリメントを使用せずにグループ毎に連番を設定する方法
MySQLでオートインクリメントを使用せずにグループ毎で連番を割り振りたかった。 ...
-
PLESK利用時にMySQLでrootのパスワードが分からない場合の対応方法
pleskで管理しているサーバがあり、mysqlのrootのパスワードが分からな ...
-
MySQLで全国の市区町村のデータを入手し、抽出する方法
都道府県と市区町村が連携したセレクトメニューを作成したかった。具体的には大阪府を ...