删除8万多条数据,越删越慢

嗯,不轻易升级,帮忙看看问题吧

用索引

是不是可以考虑分区表 直接删分区

看查询慢不慢,试下批量循环删除,删除数据底层好像会涉及到regin的迁移和并操作

官方文档说确实原删除越慢

这个是预期内行为的,因为rocksdb 存储引擎会保留多个版本,直到compaction 才会将过期版本彻底删除,可以去使用下官方提供的非事务-dml-语句
https://docs.pingcap.com/zh/tidb/v6.1/non-transactional-dml#非事务-dml-语句

非事务 DML 语句和手工循环删除是一回事,没有啥特别用处

建议用批量循环删除batch on id limit 50000 delete from

早上刚好看到有人发了个批量删除数据的脚本

很好用

1 个赞

https://github.com/realcp1018/tidb-toolkit
试试这里的tk_chunk_update.py工具,在我司内跑了几年了改的比较稳定了。
删了上千亿数据是有的。
原理也就是通过limit定界rowid,然后通过迭代器遍历chunk执行DML,和mysql的oak chunk update相似,但只是名字借了下,内容自己写的。

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。