En PHPMyAdmin puede ver el uso del espacio simplemente haciendo clic en ob la tabla.
AR.
Las respuestas a esta pregunta me ayudaron a encontrar mi solución. Una búsqueda exhaustiva de una herramienta que podría ayudarme sin ejecutar la misma consulta cada vez para obtener los datos me hizo pasar por MONyog , MySQL Enterprise Monitor , kit de herramientas Percona . Todos ellos dan detalles sobre la información del disco, pero finalmente optaron por MONyog para obtener mejores gráficos y una GUI fácil.
Mateo
Respuestas:
285
Para una tabla, mydb.mytableejecute esto para:
BYTES
SELECT(data_length+index_length) tablesize
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
KILOBITOS
SELECT(data_length+index_length)/power(1024,1) tablesize_kb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
MEGABYTES
SELECT(data_length+index_length)/power(1024,2) tablesize_mb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GIGABYTES
SELECT(data_length+index_length)/power(1024,3) tablesize_gb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GENÉRICO
Aquí hay una consulta genérica donde la unidad de visualización máxima es TB (TeraBytes)
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;para obtener una lista de todas las tablas mydbcon nombre y tamaño, ordenadas por tamaño.
kqw
1
Agregue "DESC" a la cláusula ORDER BY para ver primero las tablas que consumen más espacio en disco. ;)
mvsagar
Para ser precisos, es posible que desee llamar a las unidades ki bi bytes (KiB), me bi bytes (MiB) y gi bi bytes (GiB) cuando utilice prefijos binarios (multiplicación con la potencia de 2). O bien, puede utilizar prefijos decimales (multiplicación con la potencia de 1000) y luego llamar a las unidades ki lo bytes (KB), me ga bytes (MB) y gi ga bytes (GB). Ver más: en.wikipedia.org/wiki/Binary_prefix
La pregunta es cómo medir el espacio ocupado por una tabla en particular .
Flimm
@ShariqueAbdullah esto funcionará si está usando innodb_file_per_table, que no es el predeterminado, pero creo que es muy común y / o recomendado (alguien puede probarme fácilmente que estoy equivocado en esto, solo mi impresión).
Seaux
@Seaux, puede ser, pero no he encontrado que se esté utilizando en ninguna de las configuraciones de servidor recomendadas por las que he pasado. Entonces puede que tengas razón, pero dado que no es el predeterminado, puede que no lo encuentre. Además, creo que innodb funciona bastante diferente en comparación con MyISAM. Entonces, incluso si tiene el tamaño de archivo, puede que no sea tan preciso como lo sería en el caso de MyISAM. Pero tienes razón, esa puede ser una solución. Personalmente prefiero usar los comandos de MySQL para obtener esta información en lugar de medir el tamaño de los archivos.
Sharique Abdullah
2
Basado en la respuesta de RolandMySQLDBA, creo que podemos usar lo anterior para obtener el tamaño de cada esquema en una tabla:
SELECT table_schema, SUM((data_length+index_length)/power(1024,1)) tablesize_kb
FROM information_schema.tables GROUPBY table_schema;
Quizás podrías mirar el tamaño de los archivos ...
Cada tabla se almacena en un par de archivos separados dentro de una carpeta que se llama como se llame su base de datos. Estas carpetas se almacenan dentro del directorio de datos mysql.
Desde allí puede hacer un 'du -sh. *' Para obtener el tamaño de la tabla en el disco.
Puede verificar el tamaño de la tabla MySQL mirando phpMyAdminel panel de control haciendo clic en el nombre de la base de datos en el marco izquierdo y leyendo el tamaño de las tablas allí en el marco derecho.
La siguiente consulta también ayudará a obtener la misma información en bytes
select SUM(data_length)+ SUM(index_length)as total_size
from information_schema.tables
where table_schema ='db_name'and table_name='table_name';
Respuestas:
Para una tabla,
mydb.mytable
ejecute esto para:BYTES
KILOBITOS
MEGABYTES
GIGABYTES
GENÉRICO
Aquí hay una consulta genérica donde la unidad de visualización máxima es TB (TeraBytes)
Darle una oportunidad !!!
fuente
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;
para obtener una lista de todas las tablasmydb
con nombre y tamaño, ordenadas por tamaño.Bit rápido de SQL para obtener las 20 tablas más grandes en MB.
Espero que sea útil para alguien!
fuente
Esto no será exacto para las tablas InnoDB. El tamaño en el disco es en realidad más grande que el informado a través de la consulta.
Consulte este enlace de Percona para obtener más información.
https://www.percona.com/blog/2008/12/16/how-much-space-does-empty-innodb-table-take/
fuente
En Linux con MySQL instalado por defecto:
basado en la ubicación de mysql db de NIXCRAFT
fuente
Basado en la respuesta de RolandMySQLDBA, creo que podemos usar lo anterior para obtener el tamaño de cada esquema en una tabla:
Realmente me gustó!
fuente
Quizás podrías mirar el tamaño de los archivos ...
Cada tabla se almacena en un par de archivos separados dentro de una carpeta que se llama como se llame su base de datos. Estas carpetas se almacenan dentro del directorio de datos mysql.
Desde allí puede hacer un 'du -sh. *' Para obtener el tamaño de la tabla en el disco.
fuente
Tomado de ¿Cómo verifico cuánto espacio en disco está usando mi base de datos?
La siguiente consulta también ayudará a obtener la misma información en
bytes
fuente
Simplemente usaría la herramienta ' mysqldiskusage ' de la siguiente manera
fuente