查看MySQL数据表占用空间大小

Eave 2025.06.24

方法一:使用information_schema数据库

在MySQL中,你可以通过查询information_schema数据库中的TABLES表来获取特定数据表的大小。information_schema数据库包含了关于所有其他数据库的元数据信息,包括数据库、表、列等。

要查看一个数据表的大小,你可以使用以下SQL查询:

SELECT
    table_name AS `Table`,
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS `Size in MB`
FROM
    information_schema.TABLES
WHERE
    table_schema = '数据库名'
    AND table_name = '表名';

方法二:使用SHOW TABLE STATUS命令

选择要查询的数据库,使用SHOW TABLE STATUS命令查看数据库中所有表的状态信息。在结果中查找Data_length和Index_length字段,这两个字段分别表示表的数据大小和索引大小。通过计算Data_length和Index_length的和,可以得到每个表的总大小。对结果进行排序,以便查看哪个表最大。

SHOW TABLE STATUS

1、查看数据库所有表的大小

SELECT
    table_name AS `Table`,
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS `Size in MB`
FROM
    information_schema.TABLES
WHERE
    table_schema = 'gramess'
GROUP BY table_name;

2、查看数据库的大小

SELECT
    table_schema AS `Database`,
    ROUND(((SUM(data_length + index_length)) / 1024 / 1024 / 1024), 4) AS `Size in GB`
FROM
    information_schema.TABLES
GROUP BY table_schema;

3、查看实例的大小

SELECT
    ROUND(((SUM(data_length + index_length)) / 1024 / 1024 / 1024), 4) AS `Size in GB`
FROM
    information_schema.TABLES;