web-dev-qa-db-ja.com

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

MySQLデータベースのサイズを取得する方法?
ターゲットデータベースが "v3"と呼ばれるとします。

441
Newbie

このクエリを実行すると、おそらくあなたが探しているものが手に入るでしょう:

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; 

この問い合わせは mysqlフォーラム から来ています - そこで、より包括的な指示が利用可能です。

998
Brian Willis

以下のMySQLコマンドを使用して決定できます。

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema

結果

Database    Size (MB)
db1         11.75678253
db2         9.53125000
test        50.78547382

結果をGBで取得

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 / 1024 AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema
42
Nadeem0035

あるいは、phpMyAdminを使用している場合は、データベースのstructureタブのフッターにあるテーブルサイズの合計を調べることができます。実際のデータベースサイズはこのサイズをわずかに超えるかもしれませんが、上記のtable_schemaメソッドと一致しているようです。

スクリーンショット:

enter image description here

25
Joel

あるいは、データディレクトリに直接ジャンプして、v3.myd、v3の合計サイズを確認することもできます。 myiとv3。 frmファイル(myisam用)またはv3.idb&v3.frm(innodb用)。

25
kedar

結果をMBで取得するには

SELECT
SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2)) AS "SIZE IN MB"
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = "SCHEMA-NAME";

結果をGBで取得するには

SELECT
SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024), 2)) AS "SIZE IN GB"
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = "SCHEMA-NAME";
11
williambarau
mysqldiskusage  --server=root:MyPassword@localhost  pics

+----------+----------------+
| db_name  |         total  |
+----------+----------------+
| pics     | 1,179,131,029  |
+----------+----------------+

インストールされていない場合、これはmysql-utilsパッケージをインストールすることによってインストールすることができます。これはほとんどの主要なディストリビューションによってパッケージされるべきです。

7
Rick James

Mysqlのデータディレクトリに移動し、du -h --max-depth = 1 |を実行します。 grep databasename

2
Evan Haston