sql >> Databasteknik >  >> RDS >> PostgreSQL

Index för att få radantal av skrivskyddad (oföränderlig) PostgreSQL-tabell?

Tyvärr, i postgresql är SELECT COUNT(*) ofta långsammare än mysql som det ofta blir jämfört med.

Du kan använda följande fråga som ett alternativ till SELECT COUNT(*).

 SELECT reltuples FROM pg_class WHERE relname = 'mytable';

Detta är inte alltid 100% uppdaterat men för oföränderliga tabeller kommer det att vara korrekt varje gång. Och omedelbart. För mycket stora tabeller kommer det procentuella felet att vara mycket litet och därmed väl värt den stora tidsbesparingen.

Om det spelar någon roll och tabellen inte innehåller nollvärden kan du använda

 SELECT COUNT(primary_key_column) FROM table

och detta kommer att vara betydligt snabbare än SELECT COUNT(*)




  1. MariaDB CURRENT_TIMESTAMP() Förklarad

  2. FROM-sats som krävs i varje SELECT-sats

  3. Python, mysql.connector Fel:Inget resultat inställt på att hämta från; cgitb visar att korrekt värde skickas för att fungera

  4. Hur man extraherar en delsträng från en sträng i T-SQL