Ver el tamaño de los datos de la base de datos y de la tabla en MySQL
Al administrar y mantener una base de datos MySQL, es muy importante comprender el tamaño de los datos de la base de datos y las tablas. Esto puede ayudarle a monitorear el crecimiento de la base de datos, optimizar el rendimiento y planificar las necesidades de almacenamiento. Este blog presentará cómo utilizar consultas SQL para ver el tamaño de los datos de las bases de datos y tablas MySQL.
Verifique el tamaño total de los datos de la base de datos MySQL
Primero, aprenderemos cómo ver el tamaño total de los datos de toda la base de datos MySQL, incluidas todas las bases de datos. A continuación se muestra un ejemplo de consulta SQL:
-- 显示所有数据库的总计
SELECT
'总和' AS `数据库`,
'' AS `表名`,
CONCAT(ROUND(SUM(table_rows) / 1000000, 2), 'M') AS `行数`,
CONCAT(ROUND(SUM(data_length) / (1024 * 1024 * 1024), 2), 'GB') AS `数据大小`,
CONCAT(ROUND(SUM(index_length) / (1024 * 1024 * 1024), 2), 'GB') AS `索引大小`,
CONCAT(ROUND((SUM(data_length) + SUM(index_length)) / (1024 * 1024 * 1024), 2), 'GB') AS `总大小`
FROM
information_schema.TABLES
WHERE
table_schema NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys');
Esta consulta calcula el tamaño total de los datos de todas las bases de datos en el servidor MySQL, incluidos los datos y los índices. El total aparecerá en la primera fila, 总和
debajo de las columnas. Esto le ayudará a comprender el uso de datos en todo el servidor MySQL.
Ver el tamaño de los datos de una única base de datos MySQL
Si desea ver el tamaño de los datos de una base de datos específica, puede utilizar la siguiente consulta SQL, reemplazándola your_database_name
con el nombre de la base de datos que desea ver:
-- 显示单个数据库的数据大小
SELECT
table_schema AS `数据库`,
table_name AS `表名`,
CONCAT(ROUND(table_rows / 1000000, 2), 'M') AS `行数`,
CONCAT(ROUND(data_length / (1024 * 1024 * 1024), 2), 'GB') AS `数据大小`,
CONCAT(ROUND(index_length / (1024 * 1024 * 1024), 2), 'GB') AS `索引大小`,
CONCAT(ROUND((data_length + index_length) / (1024 * 1024 * 1024), 2), 'GB') AS `总大小`
FROM
information_schema.TABLES
WHERE
table_schema NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')
AND table_schema = 'your_database_name'
ORDER BY
data_length + index_length DESC;
Esta consulta mostrará el tamaño de los datos de cada tabla en una base de datos específica, incluidos los datos y los índices. Simplemente your_database_name
reemplácelo con el nombre de la base de datos que desea ver.
Ver todos los tamaños de datos de bases de datos
-- 显示所有数据库的总计
SELECT
'总和' AS `数据库`,
'' AS `表名`,
CONCAT(ROUND(SUM(table_rows) / 1000000, 2), 'M') AS `行数`,
CONCAT(ROUND(SUM(data_length) / (1024 * 1024 * 1024), 2), 'GB') AS `数据大小`,
CONCAT(ROUND(SUM(index_length) / (1024 * 1024 * 1024), 2), 'GB') AS `索引大小`,
CONCAT(ROUND((SUM(data_length) + SUM(index_length)) / (1024 * 1024 * 1024), 2), 'GB') AS `总大小`
FROM
information_schema.TABLES
WHERE
table_schema NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')
UNION
-- 显示每个表的数据大小
SELECT
table_schema AS `数据库`,
table_name AS `表名`,
CONCAT(ROUND(table_rows / 1000000, 2), 'M') AS `行数`,
CONCAT(ROUND(data_length / (1024 * 1024 * 1024), 2), 'GB') AS `表数据大小`,
CONCAT(ROUND(index_length / (1024 * 1024 * 1024), 2), 'GB') AS `索引大小`,
CONCAT(ROUND((data_length + index_length) / (1024 * 1024 * 1024), 2), 'GB') AS `表总大小`
FROM
information_schema.TABLES
WHERE
table_schema NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys')
ORDER BY
`总大小` DESC; -- 修改ORDER BY子句
Resumir
Al utilizar la consulta SQL anterior, puede ver fácilmente el tamaño de los datos de su base de datos y tablas MySQL. Esta información es muy útil para la gestión de bases de datos, la optimización del rendimiento y la planificación del almacenamiento. Dependiendo de sus necesidades, puede ejecutar estas consultas periódicamente para monitorear el crecimiento de la base de datos y tomar las medidas adecuadas. ¡Espero que este blog sea útil!