可以通过 INNODB_SYS_TABLESPACES
查看表空间信息表以查看实际文件大小。与 index_length
和 data_length
不同, INNODB_SYS_TABLESPACES
实时更新,无需特殊配置:mysql> select * from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES where name='sbinnodb/sbtest1' \G
*************************** 1. row ***************************
SPACE: 42
NAME: sbinnodb/sbtest1
FLAG: 33
FILE_FORMAT: Barracuda
ROW_FORMAT: Dynamic
PAGE_SIZE: 16384
ZIP_PAGE_SIZE: 0
SPACE_TYPE: Single
FS_BLOCK_SIZE: 4096
FILE_SIZE: 245937209344
ALLOCATED_SIZE: 245937266688
1 row in set (0.00 sec)
使用这个表的好处是,它还处理新功能 “InnoDB 页压缩”,正确显示了 file_size
(磁盘上的逻辑文件大小)和 allocated_size
(为此文件分配的空间,并且可以显着缩小)之间的区别。