1、使用SHOW TABLE STATUS命令:
SHOW TABLE STATUS LIKE 'table_name';
上述命令会返回包含表格信息的一行结果,其中有一个列为Data_length,表示表格占用的数据空间大小(以字节为单位)。
2、使用INFORMATION_SCHEMA库的TABLES表:
SELECT table_name, round(((data_length + index_length) / 1024 / 1024), 2) AS "Size(MB)"
FROM information_schema.TABLES
WHERE table_schema = 'database_name' AND table_name = 'table_name';
上述查询会返回表格的数据长度和索引长度之和,以MB为单位。可以指定特定的数据库和表名。
3、数据文件
扩展Innodb 存储引擎创建的任何一张表的都会有两个文件:
- test_table.frm:存储 表结构的文件,保存表的原数据信息
- test_table.ibd:存储 表数据的文件,表数据既可以存储共享表空间文件中(ibdata1中),也可以存储在独占表空间中(后缀 .idb中),是否存储在独占表中,可以通过参数 innodb_file_per_table控制,设置为 1,则会存储在独占表空间中,从 MySQL 5.6.6 版本之后,innodb_file_per_table默认值就为 1 了,因此此后的版本,表数据都是存储在独占表中的。
数据页存储结构