For et meget hurtigt skøn:
SELECT reltuples FROM pg_class WHERE relname = 'my_table';
Der er dog flere forbehold. For det første relname er ikke nødvendigvis unik i pg_class . Der kan være flere tabeller med det samme relname i flere skemaer i databasen. For at være utvetydig:
SELECT reltuples::bigint FROM pg_class WHERE oid = 'my_schema.my_table'::regclass;
Hvis du ikke skemakvalificerer tabelnavnet, en cast til regclass observerer den aktuelle search_path at vælge det bedste match. Og hvis tabellen ikke findes (eller ikke kan ses) i nogen af skemaerne i search_path får du en fejlmeddelelse. Se Objektidentifikatortyper i manualen.
Castet til bigint formaterer den real tal pænt, især for store tæller.
Også reltuples kan være mere eller mindre forældet. Der er måder at kompensere for dette til en vis grad. Se dette senere svar med nye og forbedrede muligheder:
- Hurtig måde at opdage rækkeantallet i en tabel i PostgreSQL
Og en forespørgsel på pg_stat_user_tables er mange gange langsommere (dog stadig meget hurtigere end fuld optælling), da det er en visning på et par borde.