Cómo eliminar muchas filas de la tabla a la que se accede con frecuencia

Necesito eliminar la mayoría (digamos, 90%) de una tabla muy grande (digamos, 5m de filas). El otro 10% de esta tabla se lee con frecuencia, pero no se escribe.

De "La mejor manera de eliminar millones de filas por ID", Deduzco que debería eliminar cualquier índice en el 90% que estoy eliminando, para acelerar el proceso (excepto un índice que estoy usando para seleccionar las filas para eliminar).

De "Modo de bloqueo PostgreSQL", Veo que esta operación adquirirá unROW EXCLUSIVE bloquear en toda la mesa. Pero como solo soyleyendo el otro 10%, esto no debería importar.

Entonces, ¿es seguro eliminar todo en un comando (es decir,DELETE FROM table WHERE delete_flag='t')? Me preocupa que si la eliminación de una fila falla, desencadenando unenorme revertir, entonces afectará mi capacidad de leer de la tabla. ¿Sería más sabio eliminar en lotes?

Respuestas a la pregunta(1)

Su respuesta a la pregunta