我有一些包含数百万行(最多 6MLN)的表,我需要执行删除以减少行数。我创建了一个带有循环的过程,每次执行删除 10k 记录。
我所看到的是,在一些执行之后,表开始响应非常慢并且删除不再响应,例如:
- 第一次迭代,要删除 30k 条记录,时间 35 秒
- 第二次迭代,要删除 126k 条记录,时间 3.4 分钟
- 第三次迭代,要删除 35 万条记录,时间 24 分钟
每次迭代我都会每 10k 记录提交一次。所以第一次迭代需要删除 30k 记录并提交每 10k 记录。
我看到每次执行该程序时,表都会增长(并且不会减少,这是我所期待的......)
我试图在这篇文章之前找到一个好的解决方案,但没有运气。
我无法删除并重新创建记录较少的表,因此我需要找到一种方法来降低表上的记录。
我怎样才能删除所有这些保持性能的记录?可用空间、“精心构建的索引”等
如果需要,我可以给你更多细节