使用truncate或者delete删除表后发现系统文件数据还在,这个要怎么配置让数据文件也删除呢?
到了gc 时间gc worker 会清理
gc默认10min 10min后集群统一清理删除
truncate等gc后会自动释放,delete的数据不会释放磁盘空间
标记,等待gc回收清理标记后的数据
这个只能被动等gc吗? 有没有主动手动类似oracle move 或者手动发起shrink 的语句,主动出击
MVCC + GC + SST 估计没法手动彻底删除底层数据
truncate gc以后硬盘空间释放,delete不释放,gc时间过了以后执行清理
不能,gc时间最短可以设置10分钟,默认也是10分钟
设置这么短时间有点危险
tidb把mvcc数据和正常数据放一起,时间设置长了影响性能
大佬们,事务删除和SQL删除应该都要经过GC吧?
数据库会自动清理
用shell只对oltp.sbtest8这个表(对应换成你的表名)做compact ,加-c write -d kv
mysql -uroot -pXXX -hxxx -PXXX information_schema -e “select region_id from tikv_region_status where db_name=‘oltp’ and table_name=‘sbtest8’”>region_list
cat region_list|while read line
do
tiup ctl:v6.5.1 tikv --host xxxx:20160 compact -r $line -d kv -c write --threads 1 --bottommost force
tiup ctl:v6.5.1 tikv --host xxx:20160 compact -r $line -d kv -c default --threads 1 --bottommost force
done
好的,多谢,这个是我想要看到的。
我又查了下文档,我看到对Tiflash 有可以简单的操作 ALTER TABLE … COMPACT 但是还不支持tikv
#r ALTER TABLE … COMPACT
TiDB 存储节点在后台会自动发起数据整理(Compaction)。数据整理时,表中的物理数据会被重写,如清理已删除的数据、合并多版本数据等,从而可以获得更高的访问性能,并减少磁盘空间占用。使用 ALTER TABLE ... COMPACT
语句可以立即对指定的表进行数据整理,而无需等待后台触发。
该语句执行时不会阻塞现有 SQL 语句的执行或 TiDB 功能的使用,包括事务、DDL、GC 等,也不会改变通过 SQL 语句访问获得的数据内容。该语句执行时会消耗一定量的 IO 及 CPU 资源,请注意选择合适的时机执行,如资源空闲时段,避免对业务造成负面影响。
该语句会等待表中所有副本都数据整理完毕后才结束运行并返回。在执行过程中,你可以通过 KILL
语句安全地中断本张表的数据整理过程。中断不会破坏数据一致性或丢失数据,也不会影响后续重新发起或自动触发后台数据整理。
目前该语句仅支持对 TiFlash 进行数据整理,不支持对 TiKV 进行数据整理。
对的,这个语句目前只对tiflash生效
数据库会自动清理的吧,参数可以设置
不释放空间的话,这些空间就一直占用吗?集群空间有限新数据不断增加 想要清理掉历史数据释放空间
truncate gc回收清理,默认十分钟;delete compact region合并清理