从MySQL的information_schema系统数据库中获取表的元数据信息

sql 复制代码
-- 查询指定数据库中特定表的详细信息
-- 包括数据库名、表名、记录数、数据容量和索引容量
SELECT 
    table_schema AS '数据库',                    -- 数据库名称
    table_name AS '表名',                       -- 表名称
    table_rows AS '记录数',                     -- 表中的记录行数(近似值)
    TRUNCATE(data_length / 1024 / 1024, 2) AS '数据容量(MB)',  -- 数据大小,转换为MB并保留2位小数
    TRUNCATE(index_length / 1024 / 1024, 2) AS '索引容量(MB)'  -- 索引大小,转换为MB并保留2位小数
FROM 
    information_schema.TABLES                   -- MySQL系统表,存储所有表的元数据信息
WHERE 
    table_schema = 'global'     -- 筛选特定数据库
    AND table_name = 'menu'              -- 筛选特定表
ORDER BY 
    data_length DESC,                           -- 按数据大小降序排列
    index_length DESC;                          -- 按索引大小降序排列

这个查询的主要功能是:

从MySQL的information_schema系统数据库中获取表的元数据信息

筛选出'、global'数据库中的'menu'表

显示该表的基本信息,包括记录数和存储空间占用情况

将数据大小和索引大小以MB为单位显示,并保留两位小数

注意:table_rows字段显示的是MySQL优化器估算的近似行数,可能与实际行数略有差异。