小编inf*_*oop的帖子

Postgres慢速运行删除查询

我们有一个超过62k行的表.我们正在运行一个非常简单的删除查询,需要45分钟才能完成:

DELETE FROM myTable WHERE createdtime < '2017-03-07 05:00:00.000'
Run Code Online (Sandbox Code Playgroud)

我们尝试过的事情:

1-在timestamp列上添加了一个索引,但没有帮助.

2-使用函数分批删除20或50行,这仍然非常慢.

3-删除引用此表及其自己的主键约束的所有外键约束,这有助于将时间减少到几秒但我们无法在生产数据库上安全地执行此操作,因为它将锁定表并防止读取并在事务运行时写入.

我拒绝相信这个查询通常需要很长时间才能完成.任何建议表示赞赏.

postgresql foreign-keys postgresql-performance sql-delete

3
推荐指数
1
解决办法
6817
查看次数