是需要等一会儿的
tidb 删除数据后会先把要清理的 kv 段写入 mysql.gc_delete_range,里面有个 ts 记录删库的时间戳
然后每 @@tidb_gc_run_interval 会检查一次,如果当前集群 min(minStartTs, now) + @@tidb_gc_life_time > ts,则会实际清理
所以数据没清理掉可能是
- @@tidb_gc_run_interval 没到,还没开始清理逻辑
- 还没过 @@tidb_gc_life_time,数据还存活
- 当前有正在进行的 txn 卡住了 min(minStartTs, now) 的计算
具体可以在 tidb log 里以 “[gc worker]” 为关键字搜索 (只有一台 tidb 会成为 gc leader,可能得到处看看)