Supabase Cost Performance Security & compliance

select('*') fetches every column — unnecessary egress

Part of the Realtime & cost check · fix arrives as a pull request

What it is

A query selects every column when the caller only uses a few.

Why it matters

Unused columns still cross the wire and count toward egress, and a single large text or JSON column can dominate the response. It also sends data the client had no business receiving.

How to fix it

Name the columns you need — select('id, name, created_at'). Smaller responses are faster and cheaper, and they avoid leaking fields that were never meant for the client.

Run them all on your app

Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.