如何快速批量删除历史日期的数据,每天大概也有几千万条数据。
建成分区表,直接按分区truncate呗。。。。
哎,原表不是分区表,现在新创建分区表truncate,怕程序查询结构体也要调整,有没有简单的命令来操作?
是batch语句操作吗?我尝试了一下,看需要limit 1000限制,目前执行时,服务器CPU会异常较高,coprocessor的时间会很长,是不是tikv也会参与到计算中,另外,删除后,由于tikv 也是MVCC机制,实际数据库的磁盘不会立即释放,一般需要操作什么命令 ,tidb会重新分析数据库释放无效的存储空间出来呢?
感觉没有快速的方式,我是根据大表按时间来delete一次delete删除3000条,循环的去删。
realcp1018/tidb-toolkit
试试这里,最初提供了2种方式删除数据:根据rowid和时间列,这两种方式已经在司内使用几年了,近期增加了一种更普遍的方式可以支持所有tidb类型的表。
根据id循环小批量,目前好像没有好的方法