Я хочу удалить строки на одном из моих таблиц, которым больше 7 дней. Каков наилучший способ сделать это? чтобы выполнять задание cron, которое выполняется каждую ночь, или PostgreSQL имеет встроенные функции для выполнения чего-то подобного?Postgresql удалять старые строки по принципу прокатки?
ответ
delete from the_table
where the_timestamp < now() - interval '7 days'
Самый простой способ (для меня) запланировать выполнение задания БД - это создать задание cron, которое выполняет сценарий SQL, используя psql
.
Here
вы можете прочитать о psql
. Используйте -f
или -c
, чтобы передать команды SQL в psql
.
Также было бы легче написать функцию PL/PgSQL, что делает свою работу и вызвать его из psql
с SELECT my_function();
PostgreSQL в настоящее время не имеют встроенный хрон-как функциональность, так Я бы использовал cron системы для запуска подходящей инструкции удаления. Если у вас уже есть индекс btree в столбце timestamp, вы можете также запустить удаление гораздо чаще, чем в ночное время, вынимая небольшие куски за раз. Если у вас нет индекса, то работать в ночное время в нерабочее время было бы лучше.
Если они не имеют требуемого качества, вы можете попробовать разбиение на разделы. Но я сделаю это как последнее средство, а не первый курорт.
- 1. удалять строки в PostgreSQL
- 2. MySQL Удалять старые строки на один день
- 3. удалять строки по дате
- 4. DynamoDB: автоматически удалять старые записи
- 5. Zend_Session_SaveHandler_Db - не удалять старые сеансы
- 6. taskwarrior, удалять старые повторяющиеся задачи
- 7. удалять строки по заданному шаблону
- 8. Openshift pip удалять старые версии пакетов
- 9. NLog zip и удалять старые файлы журналов
- 10. Не удалять старые файлы в каталоге ASP.NET
- 11. KML и удалять старые файлы KMLs
- 12. android удалять старые данные кэша программно
- 13. Proton CEP Fiware: удалять старые полученные события
- 14. Удалять старые файлы в каталоге с Phing
- 15. Удалять старые записи MySQL каждый час
- 16. Spinnaker: удалять старые AMI после успешного развертывания
- 17. решить лабиринт по принципу правой руки
- 18. Проверка бизнес-правил по принципу DRY
- 19. Является ли OpenStreetMap привязанным по географическому принципу?
- 20. NSFetchedResultsController сортируется по принципу «один ко многим»
- 21. Проконсультируйтесь по принципу управления разрешениями sdcard
- 22. SQL Соединение по принципу «один ко многим»
- 23. Как эффективно удалять строки из таблицы Postgresql 8.1?
- 24. удалять повторяющиеся строки в большой таблице данных postgresql
- 25. Php MySQL - удалять все строки по лимиту
- 26. Pytables - удалять строки из таблицы по некоторым критериям
- 27. Выровнять по левому краю объект прокатки pandas
- 28. Как группировать строки по столбцу и удалять ненужные строки?
- 29. Максимальное значение прокатки (ширина прокатки) rollapply не работает
- 30. выборочно удалять строки
Есть ли временная метка в строке? –
строки имеют временную метку – Arya
Зачем удалять данные, почему бы просто не запросить ее? И если вы будете выполнять работу в ночное время, у вас будут данные почти за восемь дней до начала работы - почему бы не почасово или каждую минуту? – Josh