Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


13.7.5.37 SHOW TABLE STATUS 構文

SHOW TABLE STATUS [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

SHOW TABLE STATUSSHOW TABLES のように機能しますが、TEMPORARY 以外の各テーブルに関する多くの情報を提供します。このリストはまた、mysqlshow --status db_name コマンドを使用して取得することもできます。LIKE 句 (存在する場合) は、どのテーブル名と照合するかを示します。セクション21.32「SHOW ステートメントの拡張」で説明されているように、WHERE 句を指定すると、より一般的な条件を使用して行を選択できます。

このステートメントはまた、ビューに関する情報も表示します。

SHOW TABLE STATUS の出力には、次のカラムがあります。

  • Name

    テーブルの名前。

  • Engine

    このテーブルのストレージエンジン。第15章「代替ストレージエンジンを参照してください。

  • Version

    このテーブルの .frm ファイルのバージョン番号。

  • Row_format

    行ストレージフォーマット (FixedDynamicCompressedRedundantCompact)。MyISAM テーブルの場合、Dynamic は、myisamchk -dvvPacked としてレポートするものに対応します。InnoDB テーブルのフォーマットは、Redundant または Compact としてレポートされます。InnoDB PluginBarracuda ファイル形式の場合、このフォーマットは Compressed または Dynamic である可能性があります。

  • Rows

    行数。MyISAM などの一部のストレージエンジンは、正確な数を格納します。InnoDB などのその他のストレージエンジンの場合、この値は近似値であり、実際の値から 40 から 50% 変動する可能性があります。このような場合、正確な数を取得するには SELECT COUNT(*) を使用します。

    INFORMATION_SCHEMA データベース内のテーブルの場合、Rows 値は NULL です。

  • Avg_row_length

    平均行長。

  • Data_length

    データファイルの長さ。

  • Max_data_length

    データファイルの最大長。これは、このテーブル内に格納できるデータの合計バイト数です (使用されるデータポインタサイズが指定された場合)。

  • Index_length

    インデックスファイルの長さ。

  • Data_free

    割り当てられているが、使用されていないバイト数。

    この情報はまた、InnoDB テーブルに対しても示されます (以前は、Comment 値に含まれていました)。InnoDB テーブルは、このテーブルが属するテーブルスペースの空き領域をレポートします。共有テーブルスペース内に存在するテーブルの場合、これはその共有テーブルスペースの空き領域です。複数のテーブルスペースを使用していて、このテーブルに独自のテーブルスペースがある場合は、そのテーブルのみの空き領域になります。空き領域とは、完全な空きエクステントから安全上のマージンを引いたバイト数を示します。空き領域が 0 として表示されている場合でも、新しいエクステントを割り当てる必要がないかぎり、行を挿入できる可能性があります。

    パーティション化されたテーブルの場合、この値は推定値にすぎず、絶対的に正しいとはかぎりません。このような場合、この情報を取得するためのより正確な方法は、次の例に示すように INFORMATION_SCHEMA.PARTITIONS テーブルへのクエリーです。

    SELECT    SUM(DATA_FREE)
        FROM  INFORMATION_SCHEMA.PARTITIONS
        WHERE TABLE_SCHEMA = 'mydb'
        AND   TABLE_NAME   = 'mytable';

    詳細は、セクション21.13「INFORMATION_SCHEMA PARTITIONS テーブル」を参照してください。

  • Auto_increment

    次の AUTO_INCREMENT 値。

  • Create_time

    いつテーブルが作成されたか。

  • Update_time

    いつデータファイルが最後に更新されたか。一部のストレージエンジンでは、この値は NULL です。たとえば、InnoDB はそのシステムテーブルスペース内に複数のテーブルを格納するため、データファイルのタイムスタンプは適用されません。各 InnoDB テーブルが個別の .ibd ファイル内に存在する file-per-table モードの場合でも、変更バッファリングによってデータファイルへの書き込みが遅延される可能性があるため、ファイルの変更時間は最後の挿入、更新、または削除の時間とは異なります。MyISAM の場合は、データファイルのタイムスタンプが使用されます。ただし、Windows ではタイムスタンプが更新によって更新されないため、この値は不正確です。

  • Check_time

    いつテーブルが最後にチェックされたか。すべてのストレージエンジンがこの時間を更新するわけではありません。その場合、この値は常に NULL です。

  • Collation

    このテーブルの文字セットと照合順序。

  • Checksum

    ライブチェックサム値 (存在する場合)。

  • Create_options

    CREATE TABLE で使用される追加のオプション。CREATE TABLE が呼び出されるときに指定される元のオプションは保持されており、ここでレポートされるオプションは、アクティブなテーブル設定やオプションとは異なる可能性があります。

  • Comment

    このテーブルを作成するときに使用されたコメント (または、MySQL がテーブル情報にアクセスできなかった理由に関する情報)。

MEMORY テーブルの場合、Data_lengthMax_data_length、および Index_length 値はほぼ、割り当てられているメモリーの実際の量を表します。割り当てアルゴリズムは、割り当て操作の数を減らすために、大量のメモリーを確保します。

NDB テーブルの場合、このステートメントの出力は Avg_row_length および Data_length カラムの適切な値を示しますが、例外として BLOB カラムは考慮に入れられません。

ビューの場合は、Name がビュー名を示し、Commentview になる点を除き、SHOW TABLE STATUS によって表示されるすべてのフィールドが NULL です。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  Posted by Ivan Cachicatari on February 29, 2012
You can found a custom SHOW TABLE STATUS command based on INFORMATION_SCHEMA database at:
http://en.latindevelopers.com/ivancp/2012/a-better-show-table-status/
That stored procedure returns a result like this:

+----------------------------+--------+-------+---------+-----------------+
| Table Name | Engine | Rows | Size | Collation |
+----------------------------+--------+-------+---------+-----------------+
| actor | InnoDB | 200 | 0.03 Mb | utf8_general_ci |
| actor_info | [VIEW] | - | - | - |
| address | InnoDB | 589 | 0.09 Mb | utf8_general_ci |
| category | InnoDB | 16 | 0.02 Mb | utf8_general_ci |
| city | InnoDB | 427 | 0.06 Mb | utf8_general_ci |
| country | InnoDB | 109 | 0.02 Mb | utf8_general_ci |
| customer | InnoDB | 541 | 0.12 Mb | utf8_general_ci |
...

  Posted by NOT_FOUND NOT_FOUND on July 2, 2014
MySQL 5.6 finally speeds up SHOW TABLE STATUS in cases where it used to perform miserably. Example for one of our databases containing 112 InnoDB tables, some of which have millions of rows:

MySQL 5.5.30: 32 seconds
MySQL 5.6.16: 0.3 seconds
Sign Up Login You must be logged in to post a comment.