perf(db): index packets(last_heard_at)

The packet list sorts by last_heard_at, so every page was a seq scan
plus sort over all packets. Cheap to maintain now that presence writes
are coalesced.
This commit is contained in:
MrAlders0n
2026-07-20 09:07:05 -07:00
committed by Ded
parent 0afba79b02
commit b8665ebd66
@@ -0,0 +1,8 @@
-- 008_packets_last_heard_index.sql
--
-- The packet list orders by last_heard_at but there was no index on it, so
-- every page seq-scanned and sorted all packets (~2.8s per page on a 1.5M
-- row table; 31ms with the index). Affordable to maintain now that presence
-- coalescing keeps this column from being rewritten on every observation.
CREATE INDEX idx_packets_last_heard ON packets(last_heard_at DESC);