小编rue*_*ehr的帖子

用于标识要删除的行的系统列“ctid”是否合法?

我有一个包含数亿行的表,我需要从中删除数据。

现有的索引是最有效的。

但是,我可以使用现有索引通过使用ctid值查找要删除的行:

DELETE FROM calendar_event WHERE ctid IN
(SELECT ctid FROM calendar_event WHERE user_id = 5 LIMIT 100 FOR UPDATE)
Run Code Online (Sandbox Code Playgroud)

ctid在这种情况下依赖 的风险是什么?我最糟糕的情况是删除错误的行。

postgresql performance delete concurrency postgresql-performance

8
推荐指数
1
解决办法
2842
查看次数