mirror of
https://github.com/pyMC-dev/pyMC_Repeater.git
synced 2026-07-28 12:33:23 +02:00
676e2cea30
The airtime/utilization chart queries (get_airtime_data and get_airtime_buckets) range-scan and order packets by timestamp, selecting only timestamp/length/payload_length/transmitted. On a large packets table this forced a full scan of the row heap, saturating slow storage (e.g. a Pi SD card): each dashboard poll took longer than the client timeout, aborted polls stacked, and sustained I/O starved the transmit queue. Add a covering index on packets(timestamp, length, payload_length, transmitted) so these queries run index-only, dropping the read from the full row heap to just the index range. Verified via EXPLAIN QUERY PLAN (COVERING INDEX idx_packets_airtime). Additive and idempotent.