Berikut adalah pertanyaan yang lebih terorganisir terhadap INFORMATION_SCHEMA
Ukuran Dengan Mesin Penyimpanan
SELECT
IFNULL(B.engine, 'Total') "Storage Engine",
CONCAT(LPAD(REPLACE(FORMAT(B.DSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') "Data Size",
CONCAT(LPAD(REPLACE( FORMAT(B.ISize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') "Index Size",
CONCAT(LPAD(REPLACE( FORMAT(B.TSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') "Table Size"
FROM
(SELECT
engine,
SUM(data_length) DSize,
SUM(index_length) ISize,
SUM(data_length + index_length) TSize
FROM
information_schema.tables
WHERE
table_schema NOT IN ('mysql', 'information_schema', 'performance_schema')
AND engine IS NOT NULL
GROUP BY engine WITH ROLLUP
) B,
(SELECT 3 pw) A
ORDER BY TSize;
Ukuran Berdasarkan Database
SELECT
dbname,
Concat(Lpad(Format(sdsize / Power(1024, pw), 3), 17, ' '), ' ', Substr(' KMGTP', pw + 1, 1), 'B') "Data Size",
Concat(Lpad(Format(sxsize / Power(1024, pw), 3), 17, ' '), ' ', Substr(' KMGTP', pw + 1, 1), 'B') "Index Size",
Concat(Lpad(Format(stsize / Power(1024, pw), 3), 17, ' '), ' ', Substr(' KMGTP', pw + 1, 1), 'B') "Total Size"
FROM
(SELECT
Ifnull(db, 'All Databases') DBName,
Sum(dsize) SDSize,
Sum(xsize) SXSize,
Sum(tsize) STSize
FROM (SELECT
table_schema DB,
data_length DSize,
index_length XSize,
data_length + index_length TSize
FROM information_schema.tables
WHERE table_schema NOT IN ('mysql','information_schema','performance_schema')
) AAA
GROUP BY db WITH rollup
) AA,
(SELECT 3 pw) BB
ORDER BY ( sdsize + sxsize );
Ukuran Menurut Database / Mesin Penyimpanan
SELECT
Statistic,
DataSize "Data Size",
IndexSize "Index Size",
TableSize "Table Size"
FROM
(SELECT
IF(ISNULL(table_schema) = 1, 10, 0) schema_score,
IF(ISNULL(engine) = 1, 10, 0) engine_score,
IF(ISNULL(table_schema) = 1, 'ZZZZZZZZZZZZZZZZ', table_schema) schemaname,
IF(ISNULL(B.table_schema) + ISNULL(B.engine) = 2, "Storage for All Databases", IF(ISNULL(B.table_schema) + ISNULL(B.engine) = 1, CONCAT("Storage for ", B.table_schema), CONCAT(B.engine, " Tables for ", B.table_schema))) Statistic,
CONCAT(LPAD(REPLACE(FORMAT(B.DSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') DataSize,
CONCAT(LPAD(REPLACE( FORMAT(B.ISize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') IndexSize,
CONCAT(LPAD(REPLACE(FORMAT(B.TSize / POWER(1024, pw), 3), ',', ''), 17, ' '), ' ', SUBSTR(' KMGTP', pw + 1, 1), 'B') TableSize
FROM
(SELECT
table_schema,
engine,
SUM(data_length) DSize,
SUM(index_length) ISize,
SUM(data_length + index_length) TSize
FROM
information_schema.tables
WHERE
table_schema NOT IN ('mysql', 'information_schema', 'performance_schema')
AND engine IS NOT NULL
GROUP BY
table_schema, engine WITH ROLLUP
) B,
(SELECT 3 pw) A
) AA
ORDER BY schemaname, schema_score, engine_score;
CAVEAT
Di masing-masing dari tiga (3) pertanyaan, Anda akan melihat (SELECT 3 pw)
. The pw
singkatan Power Of 1024 untuk menampilkan hasil dalam satuan tertentu:
(SELECT 0 pw)
akan Menampilkan Laporan dalam Bytes
(SELECT 1 pw)
akan Menampilkan Laporan dalam KiloBytes
(SELECT 2 pw)
akan Menampilkan Laporan dalam MegaBytes
(SELECT 3 pw)
akan Menampilkan Laporan di GigaBytes
(SELECT 4 pw)
akan Menampilkan Laporan dalam TeraBytes
(SELECT 5 pw)
akan Menampilkan Laporan di PetaBytes (silakan hubungi saya jika Anda menjalankan ini)
Berikut adalah kueri laporan dengan sedikit pemformatan di KB
:
SELECT
IFNULL(db, 'Total') "Database",
datsum / power(1024, pw) "Data Size",
ndxsum / power(1024, pw) "Index Size",
totsum / power(1024, pw) "Total"
FROM
(
SELECT
db,
SUM(dat) datsum,
SUM(ndx) ndxsum,
SUM(dat + ndx) totsum
FROM
(
SELECT table_schema db, data_length dat, index_length ndx
FROM information_schema.tables
WHERE engine IS NOT NULL AND table_schema NOT IN ('information_schema', 'mysql')
) AA
GROUP BY db WITH ROLLUP
) A,
(SELECT 1 pw) B;
Cobalah !!!
Saya akhirnya menemukan cara mudah untuk mendapatkan informasi ini langsung dari Amazon dengan beberapa klik.
sumber
show table status from mydatabsename;
di mana mydatabasename adalah nama basis data Anda.Ini menunjukkan Anda metrik Data_length dan Index_length per tabel dan metrik lainnya. Anda harus total kolom ini dan ingat bahwa mereka dalam byte sehingga Anda harus membagi dengan 1024 untuk mendapatkan kb dan kemudian dengan 1024 lagi untuk mendapatkan MB dan kemudian oleh 1024 lagi untuk mendapatkan pertunjukan. Ini juga menunjukkan ruang kosong dalam alokasi indeks / database Anda.
Anda bisa mendapatkan lebih banyak rincian dan jumlah () jika Anda ingin menjelajahi: http://dev.mysql.com/doc/refman/5.5/id/show-table-status.html
Memperlihatkan ruang yang tersisa dalam alokasi indeks / basis data ...
... menunjukkan data dan ukuran indeks yang digunakan (Anda harus menambahkannya untuk alokasi total)
Jika Anda ingin membedah lebih banyak hal ...
Tentu saja Anda juga dapat menggunakan MySQL Workbench seperti yang saya temukan di sini: http://dev.mysql.com/downloads/tools/workbench/ tetapi itu mengasumsikan Anda memiliki akses port ke server database Anda. Namun, Anda juga dapat melakukan banyak hal secara offline sehingga layak untuk diunduh. Harap perhatikan bahwa meja kerja tidak menjumlahkan () alokasi yang tidak masuk akal bagi saya. Tetapi sekali lagi, saya juga tidak memiliki versi terbaru.
sumber
2019 : Untuk MySQL dan MariaDB Silakan merujuk ke tautan yang disediakan AWS ini: https://aws.amazon.com/premiumsupport/knowledge-center/view-storage-rds-mysql-mariadb/
sumber