Saya bisa menjalankan kueri ini untuk mendapatkan ukuran semua tabel di database MySQL:
show table status from myDatabaseName;
Saya ingin bantuan dalam memahami hasilnya. Saya mencari meja dengan ukuran terbesar.
Kolom mana yang harus saya lihat?
Jawaban:
Anda dapat menggunakan kueri ini untuk menampilkan ukuran tabel (meskipun Anda harus mengganti variabel terlebih dahulu):
atau kueri ini untuk mencantumkan ukuran setiap tabel di setiap basis data, terbesar terlebih dahulu:
sumber
AND table_name IN ('table_1', 'table_2', 'table_3');
VARCHAR
danBLOB
mengetik?Anda bisa mendapatkan nama skema dari " information_schema " -> tabel SCHEMATA -> kolom " SCHEMA_NAME "
Tambahan Anda bisa mendapatkan ukuran database mysql sebagai berikut.
Hasil
Anda bisa mendapatkan detail tambahan di sini.
sumber
Ini mengurutkan ukuran (Ukuran DB dalam MB).
sumber
Jika Anda ingin kueri menggunakan database yang saat ini dipilih. cukup salin tempelkan kueri ini. (Tidak perlu modifikasi)
sumber
SIZE_MB
FROM information_schema.TABLES WHERE table_schema = DATABASE () ORDER BY (data_length + index_length) ASC;Ada cara mudah untuk mendapatkan banyak informasi menggunakan Workbench:
Klik kanan nama skema dan klik "Inspektur skema".
Di jendela yang dihasilkan Anda memiliki sejumlah tab. Tab pertama "Info" menunjukkan perkiraan kasar ukuran database dalam MB.
Tab kedua, "Tabel", menunjukkan Panjang data dan detail lainnya untuk setiap tabel.
sumber
Ukuran semua tabel:
Misalkan database atau
TABLE_SCHEMA
nama Anda adalah "news_alert". Maka permintaan ini akan menampilkan ukuran semua tabel dalam database.Keluaran:
Untuk tabel spesifik:
Misalkan Anda
TABLE_NAME
adalah "berita" . Maka query SQL akan menjadi-Keluaran:
sumber
Coba perintah shell berikut (ganti
DB_NAME
dengan nama database Anda):Untuk solusi Drupal / drush, periksa contoh skrip berikut yang akan menampilkan tabel terbesar yang digunakan:
sumber
Inilah cara lain untuk menyelesaikan hal ini dari menggunakan baris perintah bash.
for i in
mysql -NB -e 'show databases'
; do echo $i; mysql -e "SELECT table_name AS 'Tables', round(((data_length+index_length)/1024/1024),2) 'Size in MB' FROM information_schema.TABLES WHERE table_schema =\"$i\" ORDER BY (data_length + index_length) DESC" ; donesumber
Jika Anda menggunakan phpmyadmin maka cukup buka struktur tabel
misalnya
sumber
Diadaptasi dari jawaban ChapMic untuk menyesuaikan kebutuhan khusus saya.
Hanya tentukan nama basis data Anda, kemudian urutkan semua tabel dalam urutan menurun - dari tabel LARGEST ke SMALLEST di dalam basis data yang dipilih. Hanya perlu 1 variabel untuk diganti = nama basis data Anda.
sumber
Jika Anda memiliki
ssh
akses, Anda mungkin ingin mencobadu -hc /var/lib/mysql
(atau berbedadatadir
, seperti yang diatur dalam Andamy.cnf
) juga.sumber
Cara lain untuk menunjukkan jumlah baris dan ruang yang ditempati dan dipesan olehnya.
Satu-satunya string yang harus Anda ganti dalam kueri ini adalah "yourDatabaseName".
sumber
Saya menemukan jawaban yang ada sebenarnya tidak memberikan ukuran tabel pada disk, yang mana lebih membantu. Kueri ini memberikan perkiraan disk yang lebih akurat dibandingkan dengan ukuran tabel berdasarkan data_length & index. Saya harus menggunakan ini untuk instance AWS RDS di mana Anda tidak dapat secara fisik memeriksa disk dan memeriksa ukuran file.
sumber
Hitung ukuran total database di akhir:
sumber
semua 2 di atas diuji pada mysql
sumber
Ini harus diuji dalam mysql, bukan postgresql:
sumber