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