148

Web ホストを選択するために、MySQL データベースが使用する容量を知りたいです。コマンドを見つけたSHOW TABLE STATUS LIKE 'table_name'ので、クエリを実行すると、次のような結果が得られます。

Name       | Rows | Avg. Row Length | Data_Length | Index Length
----------   ----   ---------------   -----------   ------------
table_name   400          55            362000        66560
  • 数値は四捨五入。

このテーブルには362000 または 400*362000 = 144800000バイトのデータがありますか? そして、インデックスの長さとはどういう意味ですか? ありがとう !

4

10 に答える 10

292

MySQL フォーラムで見つけた S. Prakash から:

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; 
于 2014-01-16T17:46:59.707 に答える
94

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>"
于 2015-07-29T06:10:52.590 に答える
33

phpMyAdmin を使用すると、この情報が表示されます。

「データベース」(上部のメニュー)に移動し、「統計を有効にする」をクリックします。

次のようなものが表示されます。

phpMyAdmin のスクリーンショット

これは、サイズが大きくなるにつれて精度が低下する可能性がありますが、目的には十分な精度であるはずです。

于 2013-02-05T19:03:31.103 に答える
10

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; 
于 2016-07-20T16:41:57.347 に答える
4

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

すべてがここで説明されています:

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

于 2013-02-05T18:57:49.197 に答える
1

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

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

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'
于 2016-05-09T11:07:13.353 に答える
0

SUM(Data_free) 有効な場合と無効な場合があります。の歴史にもよりinnodb_file_per_tableます。詳細については、こちらを参照してください。

于 2017-02-22T02:16:50.390 に答える