MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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を参照すれば、データベース内のどのテーブルがどれだけの容量を消費しているのかを一目で把握できます。ディスク容量の管理や、肥大化したテーブルの特定、パフォーマンスチューニングの際にぜひ活用してください。

  1. PythonでMySQLデータベースへの挿入後にIDを取得する方法

    はじめに PythonからMySQLデータベースへレコードを挿入する際、「今挿入したばかりのレコードのID(AUTO_INCREMENTで自動採番された値)をすぐに取得したい」というケースは非常によくあります。本記事では、pymysqlライブラリを使ってMySQLにデータを挿入し、その直後にIDを取得する具体的な手順を解説します。 前提条件 作業を始める前に、以下の環境が整っていることを確認してください。 MySQL 8.0.12 がインストールされていること Python 3.6.3(32ビット) がインストールされていること pipコマンドで pymysql がインストールされているこ

  2. Tkinterで画面サイズ(幅・高さ)を取得する方法をわかりやすく解説

    Tkinterでは、まずすべてのウィジェットやフレームが表示されるためのウィンドウ(フレームオブジェクト)を作成します。そして、geometry()メソッドなどで指定したユーザー定義のジオメトリ情報に基づいて、ウィンドウのサイズや位置が調整されます。ここで「デスクトップ全体の画面サイズ」を取得したい場合には、Tkinterが標準で提供している以下の2つのメソッドが便利です。winfo_screenwidth() … 画面の幅をピクセル単位で返すwinfo_screenheight() … 画面の高さをピクセル単位で返すこれらのメソッドは、メインモニター(プライマリディスプレイ)の解像度を取得し