Como excluir muitas linhas da tabela acessada com frequência

Eu preciso excluir a maioria (digamos, 90%) de uma tabela muito grande (digamos, 5m linhas). Os outros 10% desta tabela são lidos frequentemente, mas não gravados.

De "Melhor maneira de excluir milhões de linhas por ID", Concluo que devo remover qualquer índice nos 90% que estou excluindo, para acelerar o processo (exceto um índice que estou usando para selecionar as linhas a serem excluídas).

De "Modo de bloqueio do PostgreSQL", Vejo que esta operação adquirirá umROW EXCLUSIVE trava em toda a mesa. Mas desde que eu sou apenaslendo os outros 10%, isso não importa.

Portanto, é seguro excluir tudo em um comando (ou seja,DELETE FROM table WHERE delete_flag='t')? Estou preocupado que, se a exclusão de uma linha falhar, acionando umenorme reversão, isso afetará minha capacidade de ler da tabela. Seria mais sábio excluir em lotes?

questionAnswers(1)

yourAnswerToTheQuestion