2012-08-07 13 views
10

¿Existe alguna consulta o función que pueda usarse para determinar el tamaño de una base de datos en MySQL? Si no, ¿cuál es la forma típica de encontrar el tamaño de la base de datos en MySQL?MySQL Tamaño de la base de datos de consulta

que estaba buscando en Google y encontré SELECT CONCAT(sum(ROUND(((DATA_LENGTH + INDEX_LENGTH - DATA_FREE)/1024/1024),2))," MB") AS Size FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA like '%YOUR_DB_NAME%' ;

y devuelve una base de datos que sé es de 400 MB para ser 474989023196466.25 MB!

+0

En todos mis tablas, data_free es mucho más grande que data_length, lo que significa que su consulta devolverá un número negativo. Tal vez lo esté interpretando como un entero positivo sin signo, de ahí el resultado sin sentido. Cuando intento pegar en esa consulta, aparece el error "BIGINT UNSIGNED value is out of range". – octern

+0

Para el tamaño de una base de datos/tabla específica, la respuesta proporcionada en esta página lo ayudará http://www.rathishkumar.in/2017/12/how-to-find-database-and-table-size-in-mysql.html – rathishDBA

Respuesta

23

intento con esta consulta:

SELECT table_schema AS "Data Base Name", 
sum(data_length + index_length)/1024/1024 AS "Data Base Size in MB" 
FROM information_schema.TABLES GROUP BY table_schema ; 

O con esto, si desea redondear:

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

Probar:

SELECT table_schema, sum(data_length + index_length) FROM information_schema.TABLES GROUP BY table_schema; 
0
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; 
Cuestiones relacionadas