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.