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