0

我有一个数据库,其中一张表被过度填充(465025579 条记录),删除记录并仅保留 3 个月的记录,而无需挂起设备的最佳方法是什么?

4

2 回答 2

1

根据最早的日期批量删除它们。当然这需要一些时间,但它更安全(因为您正在定义要删除的内容)并且不是那么资源密集。这也意味着您也可以批量缩小数据库,而不是一次大的打击(这是相当资源密集型的)。

是的,它可能会使数据库有点碎片化,但是在您将实际数据降低到可管理的水平之前,您无能为力。

公平地说,如今在一台像样的机器上,200G 的数据并没有那么多。

所有这一切,我假设您希望数据库保持“在线”

于 2013-05-16T08:13:32.207 回答
0

如果您在执行此操作时不需要数据库可用,最简单的做法通常是选择要保留到不同表中的行,TRUNCATE在此表上运行 a,然后复制保存的行回来。

来自TRUNCATE

TRUNCATE TABLE 类似于没有 WHERE 子句的 DELETE 语句;但是,TRUNCATE TABLE 速度更快,使用的系统和事务日志资源更少。

于 2013-05-16T08:09:30.343 回答