У меня есть около 10 таблиц с более чем 2 миллионами записей и один с 30 миллионами. Я хотел бы эффективно удалить старые данные из каждой из этих таблиц.эффективно обрезать таблицы postgresql
Мой общий алгоритм:
- создать временную таблицу для каждой большой таблицы и заполнить его с новыми данными
- усечение исходных таблиц
- копию TMP данных обратно в исходные таблицы, используя: «вставка в исходную таблицу (выберите * из tmp_table) «
Однако последний шаг копирования данных назад занимает больше времени, чем я хотел бы. Я думал об удалении исходных таблиц и создании временных таблиц «постоянным», но я теряю информацию об ограничении/внешнем ключе.
Если я удалю из таблиц напрямую, это займет гораздо больше времени. Учитывая, что мне нужно сохранить все внешние ключи и ограничения, существуют ли более быстрые способы удаления старых данных?
Спасибо.