MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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 を実行すると、より正確な値を取得できます。
  1. 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

  2. MySQLのZF(ZEROFILL)とは?カラム宣言におけるゼロ埋めの意味と使い方を解説

    MySQLにおけるZF(ZEROFILL)の意味「ZF」とは ZEROFILL の略で、MySQLのカラム宣言において数値の桁数が足りない場合に先頭を0で埋める(ゼロ埋め)ことを指します。この属性を指定すると、定義した表示幅に合わせて自動的に左側へ0が補完されます。まず、int型のフィールドサイズを10に設定したテーブルを作成してみましょう。mysql> create table DemoTable1332     -> (     -> Number int(10) ZEROFILL NOT N