📜  mysql 获取表大小 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.742000             🧑  作者: Mango

MySQL 获取表大小 - SQL

在MySQL中,我们可以通过一些简单的SQL语句来获取表的大小。这可以帮助我们了解数据库的存储情况并为优化数据库性能做出决策。

获取某个表的大小

下面的SQL查询将返回指定表在磁盘上占用的空间大小:

SELECT
  table_schema as 'Database',
  table_name AS 'Table',
  round(((data_length + index_length) / 1024 / 1024), 2) 'Size in MB'
FROM
  information_schema.TABLES
WHERE
  table_schema = '<database_name>'
  AND table_name = '<table_name>';

这个查询首先连接到information_schema.TABLES系统表,它包含关于MySQL服务器上表的详细信息。我们指定了数据库名称和表名称,并使用data_lengthindex_length计算出表的总大小(以MB为单位)。

获取所有表的大小

下面的SQL查询将返回指定数据库中所有表占用的空间大小:

SELECT
  table_name AS `Table`,
  round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM
  information_schema.TABLES
WHERE
  table_schema = '<database_name>'
ORDER BY
  (data_length + index_length) DESC;

这个查询与上面的查询非常相似,但这里不指定表名,而是所有表的大小都会被查询出来。我们还使用了ORDER BY子句将结果按表大小降序排列。

结论

通过这些简单的SQL查询,我们可以获得MySQL数据库中每个表的大小。这对于了解数据库的存储情况以及优化数据库性能至关重要。