我使用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的所有数据?
答案 0 :(得分:1)
要删除通过txnkv API插入的数据,您可以:
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)