MySQLデータベースのテーブルサイズを取得・確認する方法
MySQLデータベース内の各テーブルのサイズを確認したい場合、システムが標準で提供している「information_schema.TABLES」を利用するのが最も手軽な方法です。このスキーマには、すべてのデータベースとテーブルに関するメタ情報(データ長、インデックス長など)が格納されており、SQLクエリだけで簡単に容量を調べることができます。
全テーブルのサイズを一覧表示するSQL構文
以下のクエリを実行すると、指定したデータベースに含まれるすべてのテーブルのサイズをMB単位で一覧取得できます。
SELECT TABLE_NAME AS `ALLTABLESNAME`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `TABLESIZEIN(MB)` FROM information_schema.TABLES WHERE TABLE_SCHEMA = "yourDatabaseName" ORDER BY (DATA_LENGTH + INDEX_LENGTH) ASC;
クエリのポイント
- DATA_LENGTH: テーブルのデータ部分が占めるサイズ(バイト)
- INDEX_LENGTH: インデックス部分が占めるサイズ(バイト)
- TABLE_SCHEMA: 調べたいデータベース名を指定します
データ長とインデックス長の合計を1024で2回割ることで、バイト数をMB単位に変換しています。また、ORDER BY句により、サイズの小さいテーブルから順に並べて表示されます。
実行例
それでは、実際に上記の構文を使って「business」データベースのテーブルサイズを取得してみましょう。
mysql> SELECT TABLE_NAME AS `ALLTABLESNAME`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `TABLESIZEIN(MB)`
-> FROM information_schema.TABLES WHERE TABLE_SCHEMA = "business"
-> ORDER BY (DATA_LENGTH + INDEX_LENGTH) ASC;
出力結果のサンプル
+------------------------------------------------------------------+-----------------+ | ALLTABLESNAME | TABLESIZEIN(MB) | +------------------------------------------------------------------+-----------------+ | studentrecordwithmyisam | 0 | | querydatedemo | 1 | | rownumberdemo | 0 | | secondtable | 0 | | spacecolumn | 2 | | table1 | 0 | | tbldemotrail | 2 | | tblstudent | 0 | | timestamptodatedemo | 1 | | uniqueconstraintdemo | 0 | | usernameandpassworddemo | 2 | | addingunique | 5 | | bookindexes | 0 | | tblf | 0 | | uniquedemo | 2 | | multipleindexdemo | 0 | | uniquedemo1 | 0 | | foreigntable | 5 | | tabledemo2 | 0 | | foreigntabledemo | 2 | | studentenrollment | 0 | | tabledemo3 | 0 | | duplicatebookindexes | 0 | | clonestudent | 2 | | student | 0 | +------------------------------------------------------------------+-----------------+ 26 rows in set (10.29 sec)
このように、information_schema.TABLESを参照すれば、データベース内のどのテーブルがどれだけの容量を消費しているのかを一目で把握できます。ディスク容量の管理や、肥大化したテーブルの特定、パフォーマンスチューニングの際にぜひ活用してください。
-
PythonでMySQLデータベースへの挿入後にIDを取得する方法
はじめに PythonからMySQLデータベースへレコードを挿入する際、「今挿入したばかりのレコードのID(AUTO_INCREMENTで自動採番された値)をすぐに取得したい」というケースは非常によくあります。本記事では、pymysqlライブラリを使ってMySQLにデータを挿入し、その直後にIDを取得する具体的な手順を解説します。 前提条件 作業を始める前に、以下の環境が整っていることを確認してください。 MySQL 8.0.12 がインストールされていること Python 3.6.3(32ビット) がインストールされていること pipコマンドで pymysql がインストールされているこ
-
Tkinterで画面サイズ(幅・高さ)を取得する方法をわかりやすく解説
Tkinterでは、まずすべてのウィジェットやフレームが表示されるためのウィンドウ(フレームオブジェクト)を作成します。そして、geometry()メソッドなどで指定したユーザー定義のジオメトリ情報に基づいて、ウィンドウのサイズや位置が調整されます。ここで「デスクトップ全体の画面サイズ」を取得したい場合には、Tkinterが標準で提供している以下の2つのメソッドが便利です。winfo_screenwidth() … 画面の幅をピクセル単位で返すwinfo_screenheight() … 画面の高さをピクセル単位で返すこれらのメソッドは、メインモニター(プライマリディスプレイ)の解像度を取得し