我使用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的所有数据?
最佳答案
要删除通过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)
关于tidb - 如何直接在TiKV中删除数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50832393/