Aquí hay más consultas organizadas contra el INFORMATION_SCHEMA
Tamaños por motor de almacenamiento
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;
Tamaños por base de datos
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 );
Tamaños por base de datos / motor de almacenamiento
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;
CONSIDERACIÓN
En cada una de las tres (3) consultas, verá (SELECT 3 pw)
. Los pw
soportes para el poder de 1024 para mostrar los resultados en unidades específicas:
(SELECT 0 pw)
mostrará el informe en bytes
(SELECT 1 pw)
mostrará el informe en KiloBytes
(SELECT 2 pw)
mostrará el informe en MegaBytes
(SELECT 3 pw)
mostrará el informe en GigaBytes
(SELECT 4 pw)
mostrará el informe en TeraBytes
(SELECT 5 pw)
mostrará el informe en PetaBytes (contácteme si ejecuta este)
Aquí hay una consulta de informe con un poco menos de formato 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;
Darle una oportunidad !!!
Finalmente encontré la manera fácil de obtener esta información directamente de Amazon con un par de clics.
fuente
show table status from mydatabsename;
donde mydatabasename es el nombre de su base de datos.Esto le muestra las métricas Data_length e Index_length por tabla y otras métricas. Tendría que sumar estas columnas y recordar que están en bytes, por lo que tendría que dividir por 1024 para obtener kb y luego por 1024 nuevamente para obtener megs y luego por 1024 nuevamente para obtener conciertos. Esto también muestra el espacio libre dentro de su asignación de índice / base de datos.
Puede obtener más granular y sum () si desea explorar: http://dev.mysql.com/doc/refman/5.5/en/show-table-status.html
Muestra el espacio restante en la asignación de índice / base de datos ...
... muestra los datos y el tamaño del índice utilizado (deberá agregarlos para la asignación total)
Si quieres diseccionar las cosas un poco más ...
Por supuesto, también puede usar MySQL Workbench como lo he encontrado aquí: http://dev.mysql.com/downloads/tools/workbench/ pero eso supone que tiene acceso de puerto a su servidor de base de datos. Aún así, también puedes hacer mucho sin conexión, así que vale la pena descargarlo. Tenga en cuenta que el banco de trabajo no suma () asignaciones, lo que no tiene sentido para mí. Pero, de nuevo, tampoco tengo la última versión.
fuente
2019 : para MySQL y MariaDB Consulte este enlace provisto por AWS: https://aws.amazon.com/premiumsupport/knowledge-center/view-storage-rds-mysql-mariadb/
fuente