mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 04:32:42 +00:00
The Insights trends row fires three parallel GET /api/measurements?type=…&aggregate=daily&limit=5000 requests on mount (BP_SYS / BP_DIA / WEIGHT). The legacy date_trunc path scanned the measurements table each time — ~3 s per call on Marc's account. Add a `source=rollup` opt-in on the listMeasurements schema. When set alongside `aggregate=daily` the route reads from measurement_rollups DAY buckets instead, swapping a full-table scan for a small indexed read against the ~5 k-row rollup table. Cumulative HK metrics get mean * count to reconstruct the daily SUM the chart expects. The chart-data client opts in for every windowDays > 7 fetch so the trends row + every sub-page chart benefit. When the rollup returns zero buckets for the requested window the route falls through to the live aggregate so brand-new accounts still render their first chart correctly.
88 KiB
88 KiB