MySQL veritabanı boyutu nasıl alınır?


542

MySQL veritabanı boyutu nasıl alınır?
Hedef veritabanının "v3" olarak adlandırıldığını varsayalım.


Belirli tablo / özel veritabanı boyutu için buraya sağlanan komut, bilgi INFORMATION_SCHEMA.TABLES tablosundan hesaplanır, yardımcı olacak burada ayrıntılı cevaba bakınız rathishkumar.in/2017/12/...
Rathish

Yanıtlar:


1185

Bu sorguyu çalıştırın ve muhtemelen aradığınızı alacaksınız:

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; 

Bu sorgu , daha kapsamlı talimatların bulunduğu mysql forumlarından gelir .


4
Veritabanındaki tabloların çoğunu sildikten sonra bile, boyut aynı kalıyor
Vidz

2
@Vidz, InnoDB motoru kullanıyorsunuz. Bunu yaparsanız, file_per_table kullanmadıkça ve tabloları değiştirmedikçe alan açabilirsiniz.
mandza

5
Lütfen bu yöntemin tamamen boş olan veritabanlarından hiçbirini döndürmeyeceğini, veritabanının sonuçta görünmesi için en azından tek bir tablo olması gerektiğini unutmayın.
v010dya

13
Tek bir veritabanından seçim yapmak için şunu FROMve GROUPsatırı arasına ekleyin : where table_schema='DATABASE_NAME'- DATABASE_NAMEveritabanınızla değiştirme .
KJ Fiyatı

2
Not: MySQL Workbench bir Syntax error: {column title} (double quoted text) is not valid input here.hata verecektir . Sütun başlıkları tik işaretleriyle sarılmalıdır. Yani Database Name.
KareemElashmawy

75

Aşağıdaki MySQL komutu kullanılarak belirlenebilir

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

Sonuç

Database    Size (MB)
db1         11.75678253
db2         9.53125000
test        50.78547382

GB cinsinden sonuç alın

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

2
Güzel. Bu cevabı beğendim.
progfan

31

Alternatif olarak, kullanıyorsanız phpMyAdmin, veritabanı structuresekmenizin altbilgisindeki tablo boyutlarının toplamına bakabilirsiniz . Gerçek veritabanı boyutu bu boyutun biraz üzerinde olabilir, ancak table_schemayukarıda belirtilen yöntemle tutarlı görünmektedir .

Ekran görüntüsü:

resim açıklamasını buraya girin


26

Alternatif olarak, doğrudan veri dizinine atlayabilir ve v3.myd, v3'ün birleşik boyutunu kontrol edebilirsiniz. myi ve v3. frm dosyaları (myisam için) veya v3.idb & v3.frm (innodb için).


7
Not: ibd dosyaları yalnızca innodb_file_per_table
Slashterix

2
Bu cevap depolama motoruna çok özeldir. @ Brian-willis Tarafından cevap daha uygun.
Manu Manjunath

15

MB cinsinden sonuç almak için:

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

GB cinsinden sonuç almak için:

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
mysqldiskusage  --server=root:MyPassword@localhost  pics

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

Yüklü değilse, mysql-utilsçoğu büyük dağıtım tarafından paketlenmesi gereken paketin kurulumu ile kurulabilir .


4

MySQL'e ilk giriş

mysql -u username -p

MB olarak tablo ile birlikte tek bir veritabanının boyutunu görüntüleme komutu.

SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES
WHERE table_schema = "database_name"
ORDER BY (data_length + index_length) DESC;

Database_name'i Database'inize değiştirin

MB cinsinden boyutu ile tüm veritabanlarını görüntüleme komutu.

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

1

MySQL veri dizinine gidin ve çalıştırın du -h --max-depth=1 | grep databasename

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.