我使用tikvTxn将键值数据直接写入TiKV,并跳过TiDB。
db, err := driver.Open("tikv://127.0.0.1:2379?disableGC=true")
txn, _:= db.Begin()
txn.set(key, value)
txn.commit(context.Background())
...
我不能通过删除TiDB中的表来清理TiKV中的数据。
如何删除我插入到TiKV中的所有数据?
发布于 2018-07-16 13:18:44
删除通过txnkv接口插入的数据,您可以:
db, _ := driver.Open("tikv://127.0.0.1:2379?disableGC=false")
txn, _ := db.Begin()
txn.Delete(key)
txn.Commit(context.Background())
...
Txnkv基于MVCC,因此Delete
不会回收磁盘空间。相反,它会插入一个特殊的版本,该版本指示密钥已被删除。
如果您的集群中有一个TiDB,并且它启用了GC,那么该密钥将在GC间隔后以物理方式自动删除。
否则,您需要运行GC作业将其从磁盘中删除。
import "github.com/pingcap/tidb/store/tikv/gcworker"
gcworker.RunGCJob(ctx context.Context, s tikv.Storage, safePoint uint64, identifier string, concurrency int)
https://stackoverflow.com/questions/50832393
复制相似问题