In a columnar store each column is its own compressed stream, so cost scales with columns touched × rows scanned — projection is the free lunch, and * declines it (on wide tables, by 10–100×). The damage compounds: * inside views drags every column through every layer; * into an INSERT is the insert_select_position time bomb; * breaks when schemas evolve. COUNT(*) reads no column data — the asterisk there is notation.
SELECT * FROM tele WHERE plan = 'pro';
SELECT city FROM tele WHERE plan = 'pro';
The two-column telemetry question read every column — on a columnar engine SELECT * scans all three column streams to answer what one (city) needed; naming the column projects only it.
Name the columns; * EXCLUDE(...) where supported; read the scan node's projection list as the ten-second audit.