人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mysql のコマンドで、テーブルのバイト数を調べることはできるのでしょうか?

select バイト数 from テーブル名 のようなことができるような気がします。

●質問者: kaiketsu
●カテゴリ:コンピュータ インターネット
✍キーワード:MySQL SELECT コマンド バイト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● chuken_kenkou
●27ポイント

「テーブルのバイト数を調べる」というのは、実際にテーブルのデータやインデクスの格納のため、どれくらいハードディスクを占有しているかということでいいのでしょうか?

ストレージエンジンによる違いや、情報がどのタイミングで反映されるかといったことがあるかと思いますが、一つの方法としては次のような方法で得ることができます。


SQLで得たいということなら、MySQL 5.0以降であれば、information_schema.tables表を検索

MySQL :: MySQL 5.1 リファレンスマニュアル :: 21.2 INFORMATION_SCHEMA TABLES テーブル


SHOW文でいいなら、SHOW TABLE STATUS

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.4.27 SHOW TABLE STATUS 構文


2 ● tknrych
●27ポイント

スキーマ情報を取得したいということですよね。以下の方法で可能だと思います。

show table status from DB名 like 'テーブル名';

もしくは、

select DATA_LENGTH from INFORMATION_SCHEMA TABLES where like 'テーブル名';

これを実行すると、Data_lengthというカラムを取得できます。そこに、テーブルのサイズがバイトで格納されています。

http://dev.mysql.com/doc/refman/5.1/ja/tables-table.html


3 ● うぃんど
●26ポイント

【1】情報スキーマ

MySQL5以降は情報スキーマを使って必要な情報だけを取得でき便利になっています

http://dev.mysql.com/doc/refman/5.1/ja/partitions-table.html

DATA_LENGTH:この分割あるいはサブ分割に保存されたすべての行の全長でバイトで表します。― つまり分割およびサブ分割に保存されたバイトの総数です。

SELECT Data_length,Index_length FROM information_schema.tables WHERE table_name = 'テーブル名';

【2】専用のコマンド

無関係の情報まで出てきますので情報スキーマよりも使い勝手は劣りますが、

古いバージョンでも使えますし、ちょっと使うだけなら便利です

SHOW TABLE STATUS LIKE 'テーブル名検索パターン';

情報スキーマの場合はフィールド名に違いがあるため置き換える場合は下記のような具合になります

SELECT 
TABLE_NAME Name,
Engine, Version, Row_format,
TABLE_ROWS Rows,
Avg_row_length, Data_length, Max_data_length, Index_length, Data_free, Auto_increment, Create_time, Update_time, Check_time,
TABLE_COLLATION Collation,
Checksum, Create_options,
TABLE_COMMENT Comment
FROM information_schema.tables WHERE table_name LIKE 'テーブル名検索パターン';
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ