MySQLでは、information_schema.tables
にクエリを実行することで、特定のデータベース内(またはすべてのデータベース)のすべてのテーブルのサイズを確認できます。 テーブル。このテーブルには、各テーブルのサイズ、作成日、照合などの情報を含む、データベース内の各テーブルに関するデータが格納されます。
MySQL Workbench GUIを使用して、データベース内の各テーブルのサイズを確認することもできます。
この記事では、各方法の概要を簡単に説明します。
コード例
これは、データベース内のテーブルのサイズを返すSQLクエリの例です。
SELECT table_name 'Table Name', data_length + index_length 'Size in Bytes', ROUND(((data_length + index_length) / 1024 / 1024), 2) 'Size in MiB' FROM information_schema.tables WHERE table_schema = 'sakila' ORDER BY (data_length + index_length) DESC;
結果:
+----------------------------+---------------+-------------+ | Table Name | Size in Bytes | Size in MiB | +----------------------------+---------------+-------------+ | rental | 2785280 | 2.66 | | payment | 2228224 | 2.13 | | inventory | 376832 | 0.36 | | film | 278528 | 0.27 | | film_actor | 278528 | 0.27 | | film_text | 196608 | 0.19 | | customer | 131072 | 0.13 | | address | 114688 | 0.11 | | staff | 98304 | 0.09 | | film_category | 81920 | 0.08 | | city | 65536 | 0.06 | | store | 49152 | 0.05 | | actor | 32768 | 0.03 | | country | 16384 | 0.02 | | language | 16384 | 0.02 | | category | 16384 | 0.02 | | staff_list | 0 | 0.00 | | customer_list | 0 | 0.00 | | nicer_but_slower_film_list | 0 | 0.00 | | actor_info | 0 | 0.00 | | sales_by_film_category | 0 | 0.00 | | film_list | 0 | 0.00 | | sales_by_store | 0 | 0.00 | +----------------------------+---------------+-------------+
これにより、sakila
の各テーブルのサイズが返されます。 データベース。 sakila
を置き換えます 関連するデータベースの名前で。もちろん、WHERE
は省略できます。 句全体を指定すると、すべてのデータベースのすべてのテーブルのテーブルサイズが返されますが、長いリストになります。
この場合、結果をテーブルサイズの降順で並べ替えました。サイズをMiB(メビバイト)に変換した列も追加しました。
サイズを変換する別の方法は、sys.FORMAT_BYTES()
を使用することです。 機能。
sys.FORMAT_BYTES()関数
sys.FORMAT_BYTES()
を使用できます サイズをバイトからbytes
に変換する関数 、KiB
(キビバイト)、MiB
(メビバイト)、GiB
(ギビバイト)、TiB
(テビバイト)、またはPiB
(ペビバイト)、値に単位インジケーターが追加されます。ユニットインジケーターが自動的に追加されます。この関数は、値のサイズに応じて変換する単位を決定するため、使用する単位を制御することはできません。
この方法の使用例は次のとおりです。
SELECT table_name 'Table Name', data_length + index_length 'Size in Bytes', sys.FORMAT_BYTES((data_length + index_length)) 'Size (Formatted)' FROM information_schema.tables WHERE table_schema = 'sakila' ORDER BY (data_length + index_length) DESC;
結果:
+----------------------------+---------------+------------------+ | Table Name | Size in Bytes | Size (Formatted) | +----------------------------+---------------+------------------+ | rental | 2785280 | 2.66 MiB | | payment | 2228224 | 2.12 MiB | | inventory | 376832 | 368.00 KiB | | film | 278528 | 272.00 KiB | | film_actor | 278528 | 272.00 KiB | | film_text | 196608 | 192.00 KiB | | customer | 131072 | 128.00 KiB | | address | 114688 | 112.00 KiB | | staff | 98304 | 96.00 KiB | | film_category | 81920 | 80.00 KiB | | city | 65536 | 64.00 KiB | | store | 49152 | 48.00 KiB | | actor | 32768 | 32.00 KiB | | category | 16384 | 16.00 KiB | | country | 16384 | 16.00 KiB | | language | 16384 | 16.00 KiB | | actor_info | 0 | 0 bytes | | customer_list | 0 | 0 bytes | | film_list | 0 | 0 bytes | | nicer_but_slower_film_list | 0 | 0 bytes | | sales_by_film_category | 0 | 0 bytes | | sales_by_store | 0 | 0 bytes | | staff_list | 0 | 0 bytes | +----------------------------+---------------+------------------+
MySQL Workbench
MySQL Workbench GUIを使用している場合は、テーブルサイズをポイントしてクリックすることができます。方法は次のとおりです。
Schemas
でデータベースに移動します ペイン- 該当するデータベースにカーソルを合わせます
- データベース名の横にある小さな情報アイコンをクリックします。これにより、おおよそのサイズ、テーブル数、照合など、データベースに関する情報が読み込まれます。
Tables
をクリックします タブ。これにより、データ長やインデックス長など、データベース内の各テーブルに関する情報が表示されます。