MySQL中表所属表空间的信息存储位置查询
MySQL表所属表空间信息的存储位置
针对InnoDB引擎的表,表与表空间的关联信息存储在InnoDB专属的系统表中:
- 低版本MySQL(8.0以下):需要联合查询
information_schema.INNODB_TABLES和information_schema.INNODB_TABLESPACES。INNODB_TABLES的SPACE字段对应表空间ID,关联INNODB_TABLESPACES的SPACE字段即可获取表空间名称,示例语句:
SELECT it.NAME AS table_name, its.NAME AS tablespace_name FROM information_schema.INNODB_TABLES it JOIN information_schema.INNODB_TABLESPACES its ON it.SPACE = its.SPACE WHERE it.NAME = '数据库名/city';
注意it.NAME的格式为数据库名/表名,需替换为实际值。
- MySQL 8.0及以上版本:
information_schema.TABLES表新增了TABLESPACE_NAME字段,直接查询即可得到结果:
SELECT TABLESPACE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='city';
SHOW TABLE STATUS结果中确实不包含表空间信息,低版本的information_schema.TABLES也无对应字段,因此需要使用上述InnoDB专属系统表或高版本新增字段来查询。
内容的提问来源于stack exchange,提问作者Astora
相关产品推荐
相关产品推荐

