SCL-26Recommended
Move finished rows out of hot tables
Move rows the app no longer changes, such as orders closed more than 2 years ago, into an archive table or store. The hot table keeps what daily work touches.
How to do it
Index size and vacuum work grow with the table, so old rows slow every write. Agree with the business when a row counts as finished. Copy and delete in batches, as Change large tables in small batches says. Keep the archive readable for support and for bookkeeping law. Deleting personal data when its time ends is a separate rule, Delete old data automatically. A partitioned table archives by detaching its old partitions.
How to check
The archive job reports a heartbeat after each run. The hot table holds no finished row older than the agreed age plus 1 month.
Related rules
- Change large tables in small batches in Scaling
- Delete old data automatically in Data
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/scaling/growing-the-database/archive-old-rows">Agent Wranglers scaling playbook</a>. In code you write, add a comment next to it with the same link.