MySQLで特定のデータベース内テーブルのステータスを確認する方法
SHOW TABLE STATUSステートメントとは
MySQLでは、SHOW TABLE STATUSステートメントを使用することで、データベース内に存在するテーブルの詳細な状態(ステータス)を一括して確認できます。このコマンドを実行すると、テーブル名、ストレージエンジンの種類、行数、平均行長、データサイズ、照合順序、作成日時など、テーブル運用に役立つさまざまな情報を取得できます。
基本的な使い方
まずUSEステートメントで対象のデータベースを選択し、その後SHOW TABLE STATUSを実行します。以下は「tutorial」というデータベースでの実行例です。
mysql> USE tutorial;
mysql> SHOW TABLE STATUS \G
出力結果の例
*************************** 1. row ***************************
Name: student
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 7340032
Auto_increment: NULL
Create_time: 2017-10-24 09:34:29
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
この結果から、データベース「tutorial」には「student」という名前のテーブルが1つだけ存在することがわかります。また、InnoDBエンジンを使用しており、2017年10月24日に作成されたテーブルであることも確認できます。
主な出力項目の意味
- Name: テーブル名
- Engine: 使用されているストレージエンジン(InnoDB、MyISAMなど)
- Rows: テーブル内の行数の概算値
- Avg_row_length: 1行あたりの平均バイト数
- Data_length: データファイルのサイズ(バイト)
- Auto_increment: 次に割り当てられるAUTO_INCREMENT値
- Create_time: テーブルの作成日時
- Update_time: 最終更新日時
- Collation: テーブルの照合順序
特定のテーブルだけステータスを確認するには
データベース内に多数のテーブルがある場合、LIKE句を組み合わせることで、特定のテーブルのステータスのみを表示できます。
mysql> SHOW TABLE STATUS LIKE 'student' \G
このように、SHOW TABLE STATUSステートメントを活用すれば、テーブルの構造や状態を簡単に把握でき、パフォーマンスチューニングやメンテナンス作業にも役立ちます。
-
MySQLでINFORMATION_SCHEMA.TABLESを使ってテーブルの存在を確認する方法
INFORMATION_SCHEMA.TABLESとはMySQLでデータベース内に特定のテーブルがすでに存在するかどうかを確認したい場合、INFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、データベースやテーブルなどのメタ情報を管理する特殊なスキーマであり、そこに対してクエリを実行することで、目的のテーブルが存在するかどうかを簡単に調べられます。基本構文SELECT TABLE_NAMEFROM INFORMATION_SCHEMA.TABLESWHERE TABLE_SCHEMA = yourDatabaseNameAND TAB
-
MySQLデータベース内の空のテーブルを確認する方法をわかりやすく解説
データベース内のテーブルが空かどうかを確認するには、テーブルから実際にレコードを抽出してみる必要があります。テーブルにデータが存在する場合はレコードが返され、空の場合は「Empty set(空のセット)」が返されます。ここからは、サンプルテーブルを使いながら具体的な手順を見ていきましょう。1. テーブルを作成するまず、CREATE TABLE文でテーブルを作成します。mysql> create table DemoTable(Id int, Name varchar(100), Age int); Query OK, 0 rows affected (0.80 sec)2. レコードを挿