一个表被删除了,怎么确定这个表的空间被回收了还是没被回收呢?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】7.1
【复现路径】一个大表进行drop操作,但是drop后空间并不会立即被回收,而是要等待gc才真的回收。那么TiDB里面通过什么方法可以确认这个表的空间是真的被回收了还是没被回收呢?information_schema.TIKV_REGION_STATUS这个视图应该是不准确的吧?
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】

SELECT * FROM mysql.gc_delete_range ;
这个表里面看下对用的region还有没有,没有了就说明已经被GC了

1 个赞

information_schema.TIKV_REGION_STATUS是准确的,你看这个就行。

drop并不会导致这个表的region消失,后面还是会gc才消失。
delete需要gc+compact才消失

3 个赞

根据时间看下监控,大表进行drop,gc后应该有空region,pd监控有region种类

系统表中有对应的信息information_schema.TIKV_REGION_STATUS,查看


可以知道

TIKV_REGION_STATUS参考下

正解!

SELECT * FROM mysql.gc_delete_range ;

1 个赞

看gc_delete_range

information_schema.TIKV_REGION_STATUS是准确的,你看这个就行

select * from mysql.gc_delete_range ;

表数据是存在TiKV的region里面的,你查看表对应的region是否存在就可以判断是否回收了

这个表里面看下对用的region还有没有,没有了就说明已经被GC了,也就是被物理清除了