MySQL中查询表及索引大小的方法

    xiaoxiao2022-07-02  114

    查询MySQL表的大小及索引大小可以通过系统库information_schema中的TABLES表来实现。

    该表常用的一些字段:

    TABLE_SCHEMA:数据库名 TABLE_NAME:表名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录行数 DATA_LENGTH:表大小 INDEX_LENGTH:索引大小

     

    1、可以查询数据库的数据行数、表空间、索引空间,如下,将[数据库名]替换成你自己的数据库名即可。

    SELECT TABLE_SCHEMA AS '库名', CONCAT(ROUND(TABLE_ROWS/10000, 2), ' 万行') 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+INDEX_LENGTH)/(1024*1024*1024),2),' GB') AS'总空间' FROM information_schema.TABLES WHERE TABLE_SCHEMA = [数据库名];

     

    2、当然也可以不汇总,查询下各个表的情况进行分析,如下,将[数据库名]替换成你自己的数据库名即可。

    SELECT TABLE_NAME AS '表名', CONCAT(ROUND(TABLE_ROWS/10000, 2), ' 万行') 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 = [数据库名] ORDER BY TABLE_ROWS DESC;

    原文地址:https://www.cnblogs.com/pcheng/p/7730279.html

    最新回复(0)