sql >> データベース >  >> RDS >> Mysql

MySQLでデータベース内のすべてのテーブルのサイズを確認する方法

    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を使用している場合は、テーブルサイズをポイントしてクリックすることができます。方法は次のとおりです。

    1. Schemasでデータベースに移動します ペイン
    2. 該当するデータベースにカーソルを合わせます
    3. データベース名の横にある小さな情報アイコンをクリックします。これにより、おおよそのサイズ、テーブル数、照合など、データベースに関する情報が読み込まれます。
    4. Tablesをクリックします タブ。これにより、データ長やインデックス長など、データベース内の各テーブルに関する情報が表示されます。

    1. OracleでBLOBからファイルを取得する方法は?

    2. MariaDBでRADIANS()がどのように機能するか

    3. MySQLで過去7日間のレコードを取得する方法

    4. Oracleの日付