MySQLで平均行長(AVG_ROW_LENGTH)をクエリして確認する方法
MySQLでは、INFORMATION_SCHEMA.TABLES ビューの AVG_ROW_LENGTH カラムを参照することで、テーブルの平均行長(1行あたりの平均データサイズ)を簡単に確認できます。
基本構文
SELECT AVG_ROW_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'yourTableName';
それでは、実際にサンプルテーブルを作成し、平均行長を取得する手順を見ていきましょう。
1. テーブルの作成
まず、以下のコマンドでテーブルを作成します。
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(100)
);
Query OK, 0 rows affected (0.90 sec)2. レコードの挿入
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable(StudentName) values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(StudentName) values('Larry');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable(StudentName) values('Sam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentName) values('Mike');
Query OK, 1 row affected (0.15 sec)3. レコードの表示
SELECTコマンドでテーブル内のレコードを表示してみましょう。
mysql> select *from DemoTable;
実行すると、次のような出力が得られます。
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | John | | 2 | Larry | | 3 | Sam | | 4 | Mike | +-----------+-------------+ 4 rows in set (0.00 sec)
4. 平均行長のクエリ
ここからが本題です。information_schema.tables を参照して、DemoTableの平均行長をクエリします。
mysql> SELECT AVG_ROW_LENGTH FROM information_schema.tables WHERE TABLE_NAME = 'DemoTable';
実行結果は以下の通りです。
+----------------+ | AVG_ROW_LENGTH | +----------------+ | 4096 | +----------------+ 1 row in set (0.11 sec)
このように、AVG_ROW_LENGTH の値として「4096」が返されました。これは、このテーブルにおける1行あたりの平均データサイズ(バイト単位)を示しています。
補足ポイント
- 同じ名前のテーブルが複数のデータベースに存在する場合は、
WHERE TABLE_SCHEMA = 'yourDatabaseName'の条件も追加すると、より正確に絞り込めます。 AVG_ROW_LENGTHの値は統計情報に基づいているため、大量のデータ操作を行った直後はANALYZE TABLEを実行すると、より正確な値を取得できます。
-
MySQLで生年月日(DOB)から年齢を照会・抽出する方法
MySQLでは、CURDATE()関数とINTERVAL句を組み合わせることで、生年月日(DOB)をもとに特定の年齢以上のユーザーを簡単に抽出できます。ここでは、16歳以上のレコードを取得する例を紹介します。1. サンプルテーブルの作成まず、生年月日(DOB)を格納するテーブルを作成します。mysql> create table DemoTable611 (DOB date); Query OK, 0 rows affected (0.99 sec)2. レコードの挿入INSERT文を使って、いくつかの生年月日データを登録します。mysql> insert into DemoTab
-
MySQLのZF(ZEROFILL)とは?カラム宣言におけるゼロ埋めの意味と使い方を解説
MySQLにおけるZF(ZEROFILL)の意味「ZF」とは ZEROFILL の略で、MySQLのカラム宣言において数値の桁数が足りない場合に先頭を0で埋める(ゼロ埋め)ことを指します。この属性を指定すると、定義した表示幅に合わせて自動的に左側へ0が補完されます。まず、int型のフィールドサイズを10に設定したテーブルを作成してみましょう。mysql> create table DemoTable1332 -> ( -> Number int(10) ZEROFILL NOT N