【 TiDB 使用环境】生产环境
【 TiDB 版本】5.4
drop table一个12T的大表,对业务有没有影响?
有没有类似MYSQL大表drop使用硬链接的方式删除的?
肯定有影响的,因为有GC机制和MVCC
如果你需要删除大量行(数万或更多)的时候,建议使用一个迭代,每次都只删除一部分数据,直到删除全部完成。这是因为 TiDB 单个事务大小限制为 txn-total-size-limit(默认为 100MB)。你可以在程序或脚本中使用循环来完成操作。
https://docs.pingcap.com/zh/tidb/stable/dev-guide-delete-data#批量删除
delete删除12T数据,疯了么 ,这么干数据库波动才大
drop操作。达到GC时间后会清理sst 文件,可能引起一定IO,之后会有大量的空region,pd会调度region合并消耗些资源。整体影响不大
理论上是没影响,建议业务低谷期drop
他是drop
我回复的楼上那个建议delete删除那个
必须要做的事,肯定要做。放低峰期执行。但是对tikv执行GC会有性能影响
tidb.drop和truncate应该那啥区别吧
那不还有非事务 DML 嘛
不建议一次性执行这么大的操作,可以弄个定时器每天凌晨固定时间多线程异步删除,等数据量下来后在执行truncate table操作
应该有影响,删除表和里面的数据,毕竟需要占用cpu和内存资源
是drop table的删除
drop table表,不用delete。这样是不是也会gc和io卡死?
在执行DROP TABLE操作时,会有大量连续的数据被删除。tidb会将这些待删除的区间及删除操作的时间戳记录下来,并不会立即物理删除。gc阶段:Delete Ranges 会将这些时间戳在 safe point 之前的区间进行快速的物理删除。物理删除主要是消耗磁盘io,对cpu内存影响较小
drop是磁盘IO的一下子拉高,还是缓慢慢的drop。如果IO直接100%,那业务不就gg了吗?
我只drop过一百多亿行记录的表没啥影响,你这12t数据量太大了,没有人干过,不敢给你打包票,所以建议你业务低谷期干。
这么删一年都删不完。不信你测试下,1亿数据,开始删超级快,后面越来越慢,从几十毫秒一直到几秒一次
强烈不建议delete数据,tidb 的持续delete性能非常差,会越来越慢,而且硬盘数据量会激增,分分钟把硬盘写爆了