PostgreSQL does not currently have built-in functions like cron, so I would use the cron system to run a suitable delete instruction. If you already have a btree index in the timestamp column, you can also start the deletion much more often than at night by taking out small pieces at a time. If you do not have an index, then working at night after hours would be better.
If you do not have the required performance, you can try to split. But I will do it as a last resort, and not the first resort.
jjanes
source share