TiDB数据快速批量删除

如何快速批量删除历史日期的数据,每天大概也有几千万条数据。

参考一下这个

https://docs.pingcap.com/zh/tidb/v6.1/non-transactional-dml#非事务-dml-语句

建成分区表,直接按分区truncate呗。。。。

哎,原表不是分区表,现在新创建分区表truncate,怕程序查询结构体也要调整,有没有简单的命令来操作?

是batch语句操作吗?我尝试了一下,看需要limit 1000限制,目前执行时,服务器CPU会异常较高,coprocessor的时间会很长,是不是tikv也会参与到计算中,另外,删除后,由于tikv 也是MVCC机制,实际数据库的磁盘不会立即释放,一般需要操作什么命令 ,tidb会重新分析数据库释放无效的存储空间出来呢?

感觉没有快速的方式,我是根据大表按时间来delete一次delete删除3000条,循环的去删。

https://docs.pingcap.com/zh/tidb/stable/dev-guide-delete-data#批量删除
是的

realcp1018/tidb-toolkit
试试这里,最初提供了2种方式删除数据:根据rowid和时间列,这两种方式已经在司内使用几年了,近期增加了一种更普遍的方式可以支持所有tidb类型的表。

根据id循环小批量,目前好像没有好的方法