Webホストを選択するために、MySQLデータベースがどのくらいのスペースを使用しているかを知りたいのですが。 SHOW TABLE STATUS LIKE 'table_name'
というコマンドを見つけたので、クエリを実行すると、次のようになります。
Name | Rows | Avg. Row Length | Data_Length | Index Length
---------- ---- --------------- ----------- ------------
table_name 400 55 362000 66560
では、このテーブルに620または400 * 362000 = 1448000バイトのデータはありますか?そして、インデックス長とはどういう意味ですか?ありがとうございます。
S. Prakashから、 MySQLフォーラムで見つけました :
SELECT table_schema "database name",
sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema;
コピーペーストを簡単にするために1行にすることもできます。
SELECT table_schema "database name", sum( data_length + index_length ) / 1024 / 1024 "database size in MB", sum( data_free )/ 1024 / 1024 "free space in MB" FROM information_schema.TABLES GROUP BY table_schema;
Mysqlクライアントで次のコマンドを実行すると、Mysqlデータベースのサイズを取得できます。
SELECT sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2)) as "Size in GB"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>"
PhpMyAdminを使用している場合は、この情報がわかります。
「データベース」(一番上のメニュー)に行き、「統計を有効にする」をクリックするだけです。
あなたはこのようなものを見るでしょう:
これはおそらくサイズが上がるにつれていくらかの正確さを失うでしょう、しかしそれはあなたの目的のために十分正確であるべきです。
あなたがMBでそれを見つけたいならば、これをしてください
SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
基本的に2つの方法があります:DB(データ長+インデックスの長さ)を問い合わせるか、ファイルサイズをチェックします。インデックスの長さは、インデックスに格納されているデータに関連しています。
すべてがここに記述されています。
http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/
OracleのMySQL Utilitiesには、すべてのデータベースのディスク使用量を表示するmysqldiskusageというコマンドがあります。 https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqldiskusage.html
いずれの答えにも、テーブルのオーバーヘッドサイズとメタデータサイズは含まれていません。
これはデータベースによって割り当てられた「ディスクスペース」のより正確な見積もりです。
SELECT ROUND((SUM(data_length+index_length+data_free) + (COUNT(*) * 300 * 1024))/1048576+150, 2) AS MegaBytes FROM information_schema.TABLES WHERE table_schema = 'DATABASE-NAME'
すべてのMySQLデータベースのサイズ、つまりこのコマンドを見つけたい場合は、それぞれのサイズをメガバイトで表示します。
SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;
大規模データベースがある場合は、次のコマンドを使用して結果をギガバイトで表示できます。
SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES GROUP BY table_schema;
YOUR_DATABASE_NAME
のように特定のデータベースのみのサイズを表示したい場合は、次のクエリを使用できます。
SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES WHERE table_schema='YOUR_DATABASE_NAME' GROUP BY table_schema;
SUM(Data_free)
は有効な場合も無効な場合もあります。それはinnodb_file_per_table
の歴史によります。もっと議論があります ここ 。