För en mycket snabb uppskattning:
SELECT reltuples FROM pg_class WHERE relname = 'my_table';
Det finns dock flera varningar. För en, relname är inte nödvändigtvis unikt i pg_class . Det kan finnas flera tabeller med samma relname i flera scheman i databasen. För att vara entydig:
SELECT reltuples::bigint FROM pg_class WHERE oid = 'my_schema.my_table'::regclass;
Om du inte schemakvalificerar tabellnamnet, en cast till regclass observerar den aktuella search_path att välja den bästa matchningen. Och om tabellen inte finns (eller inte kan ses) i något av schemana i search_path du får ett felmeddelande. Se Objektidentifieringstyper i manualen.
Casten till bigint formaterar den real siffra bra, särskilt för stora räkningar.
Även reltuples kan vara mer eller mindre inaktuell. Det finns sätt att kompensera för detta till viss del. Se detta senare svar med nya och förbättrade alternativ:
- Snabbt sätt att upptäcka radantalet i en tabell i PostgreSQL
Och en fråga på pg_stat_user_tables är många gånger långsammare (men fortfarande mycket snabbare än fullt antal), eftersom det är en vy på ett par bord.