sql >> Database teknologi >  >> RDS >> PostgreSQL

Indeks for at få rækkeantal af skrivebeskyttet (uforanderlig) PostgreSQL-tabel?

Desværre er SELECT COUNT(*) i postgresql ofte langsommere end mysql som det ofte bliver sammenlignet med.

Du kan bruge følgende forespørgsel som et alternativ til SELECT COUNT(*).

 SELECT reltuples FROM pg_class WHERE relname = 'mytable';

Dette er ikke altid 100 % opdateret, men for uforanderlige tabeller vil det være nøjagtigt hver gang. Og øjeblikkeligt. For meget store tabeller vil den procentvise fejl være meget lille og dermed den store tidsbesparelse værd.

Hvis det gør noget, og tabellen ikke indeholder nuller, kan du bruge

 SELECT COUNT(primary_key_column) FROM table

og dette vil være betydeligt hurtigere end SELECT COUNT(*)




  1. MySQL-tabelnavnet for store og små bogstaver på MacOS med et filsystem, der ikke skiller mellem store og små bogstaver

  2. mysqli eller PDO - hvad er fordele og ulemper?

  3. Oracle 12c - yder indeks på en 'nummer'-kolonne hurtigere end indeks på 'varchar'-kolonne?

  4. Forkert syntaks i nærheden ''