Visualize o tamanho dos dados do banco de dados e da tabela no MySQL
Ao gerenciar e manter um banco de dados MySQL, é muito importante compreender o tamanho dos dados do banco de dados e das tabelas. Isso pode ajudá-lo a monitorar o crescimento do banco de dados, otimizar o desempenho e planejar as necessidades de armazenamento. Este blog apresentará como usar consultas SQL para visualizar o tamanho dos dados de bancos de dados e tabelas MySQL.
Verifique o tamanho total dos dados do banco de dados MySQL
Primeiro, aprenderemos como visualizar o tamanho total dos dados de todo o banco de dados MySQL, incluindo todos os bancos de dados. A seguir está um exemplo 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 o tamanho total dos dados de todos os bancos de dados no servidor MySQL, incluindo dados e índices. O total aparecerá na primeira linha, 总和
abaixo das colunas. Isso ajudará você a entender o uso de dados em todo o servidor MySQL.
Visualize o tamanho dos dados de um único banco de dados MySQL
Se quiser ver o tamanho dos dados de um banco de dados específico, você pode usar a seguinte consulta SQL, substituindo your_database_name
pelo nome do banco de dados que deseja 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 exibirá o tamanho dos dados de cada tabela em um banco de dados específico, incluindo dados e índices. Basta your_database_name
substituir pelo nome do banco de dados que você deseja visualizar.
Ver todos os tamanhos de dados do banco de dados
-- 显示所有数据库的总计
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
Usando a consulta SQL acima, você pode visualizar facilmente o tamanho dos dados do seu banco de dados MySQL e tabelas. Essas informações são muito úteis para gerenciamento de banco de dados, otimização de desempenho e planejamento de armazenamento. Dependendo das suas necessidades, você pode executar essas consultas periodicamente para monitorar o crescimento do banco de dados e tomar as medidas adequadas. Espero que este blog seja útil!