# 显示指定数据库中所有表的大小 SELECT TABLE_NAME AS "表名", ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS "大小(MB)" FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC; # 显示指定表的大小 SELECT TABLE_NAME AS "表名", ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS "大小(MB)" FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
其中,information_schema.TABLES
是一个特殊的表,用来存储MySQL中所有表的元数据信息,包括表名、表大小、表类型、表引擎等。
代码中的DATA_LENGTH
表示数据文件的大小,INDEX_LENGTH
表示索引文件的大小,两者相加即为表的总大小。通过使用ROUND
函数将大小转换为MB,并使用ORDER BY
语句根据表大小进行降序排序。
通过以上代码,您可以轻松查询MySQL中所有表或指定表的大小,方便进行数据库性能和备份管理。