Мне нужно удалить около 80% моей базы данных Postgresql объемом 500 ГБ. На данный момент я успешно выполнил команду удаления примерно для 50 ГБ строк и приостановил выполнение, прежде чем продолжить. (Это заняло много времени, возможно, один час)
Я заметил, что после удаления около 50 ГБ данных дополнительное место на диске не освобождается, но при запуске «htop» можно наблюдать некоторые процессы postgres с интенсивным использованием памяти. Правильно ли я предполагаю, что это связано с мертвыми строками, которые необходимо очистить до освобождения места на диске?
Вторая часть этого вопроса: если я не ошибаюсь насчет первой части, лучше ли мне удалить все строки, а затем разрешить автоочистку? Похоже, автоочистка (или какой-то другой интенсивный фоновый процесс) запустилась сама по себе, прежде чем у меня появилась возможность продолжить список команд для удаления строк. Мне просто продолжить или я должен изящно сказать ему остановиться первым?
vacuum full
- поэтому он не обязательно освобождает место на диске для удаленных кортежей, но вместо этого помечает их как повторно используемые. да- это нормально. нет - не стоит об этом заботиться - продолжайте свою работу, предоставив автовакууму выполнять свою работу - person Vao Tsun   schedule 06.04.2018