web-dev-qa-db-ja.com

MySQLデータベースの実サイズを取得する方法

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バイトのデータはありますか?そして、インデックス長とはどういう意味ですか?ありがとうございます。

141
marvin

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; 
272
ron_dobley

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>"
92
minhas23

PhpMyAdminを使用している場合は、この情報がわかります。

「データベース」(一番上のメニュー)に行き、「統計を有効にする」をクリックするだけです。

あなたはこのようなものを見るでしょう:

phpMyAdmin screenshot

これはおそらくサイズが上がるにつれていくらかの正確さを失うでしょう、しかしそれはあなたの目的のために十分正確であるべきです。

29
Radu Murzea

あなたが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; 
8
jakson

基本的に2つの方法があります:DB(データ長+インデックスの長さ)を問い合わせるか、ファイルサイズをチェックします。インデックスの長さは、インデックスに格納されているデータに関連しています。

すべてがここに記述されています。

http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/

3
MiGro

OracleのMySQL Utilitiesには、すべてのデータベースのディスク使用量を表示するmysqldiskusageというコマンドがあります。 https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqldiskusage.html

0
ofrommel

いずれの答えにも、テーブルのオーバーヘッドサイズとメタデータサイズは含まれていません。

これはデータベースによって割り当てられた「ディスクスペース」のより正確な見積もりです。

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'
0
Semra

MySql Workbenchを使用している場合は、データベースサイズ、各テーブルサイズ、インデックスサイズなどの詳細を簡単に取得できます。

  1. スキーマを右クリック
  2. Schema Inspectorオプションを選択してください

    enter image description here

  3. スキーマサイズの詳細をすべて表示します

  4. 各テーブルのサイズを見るにはTables Tabを選択してください。

    enter image description here

  5. データサイズ列に表示されるテーブルサイズ

0
Viraj Dhamal

すべての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;
0
Arbab Nazar

SUM(Data_free)は有効な場合も無効な場合もあります。それはinnodb_file_per_tableの歴史によります。もっと議論があります ここ

0
Rick James