【 TiDB 使用环境】生产环境
【 TiDB 版本】V5.4.0
【复现路径】delete from table_name a where a.time < ‘2025-05-01’ limit 10000;
【遇到的问题:问题现象及影响】在delete表后,如何快速腾出存储空间,gc设置的默认10分钟。
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
1 个赞
看下mvcc有没有参数可以调整一下?
或者直接drop partition ?
关于compaction可以参考大佬的文章
1 个赞
需要compact才能真正释放空间,就算gc了,空间也没释放
手动触发region的compaction操作,或者对于一些清空整个表的操作,使用truncate命令代替delete命令,这样10分钟后就能释放空间
truncate不就完了
需要把水位降下来,可以尝试重建一下表
是不是要管理员权限才能触发?
1 把 tikv_gc_life_time 缩到 10 min
2 手动触发全局 compaction
如果是生产库的话最好不要动这个GC类的参数,或者根据业务来设置GC的间隔参数
手动命令是什么
cd /root/.tiup/components/ctl/v6.5.12
./tikv-ctl --host=10.0.0.15:20160 compact --from=‘z’ --to=‘z’ --threads=16 --bottommost force
1 个赞
手动触发全局 compaction能把服务器io跑满,而且占用巨多磁盘空间
1 个赞
不需要吧,只要有对应权限就行
1 个赞
谢谢,我问下dba有没有权限.
哦,那看来不能手动,很可能会影响业务
手动触发region的compaction操作,或者对于一些清空整个表的操作,使用truncate命令代替delete命令,这样10分钟后就能释放空间
1 个赞
