sql >> Databáze >  >> RDS >> PostgreSQL

Index pro získání počtu řádků tabulky PostgreSQL pouze pro čtení (neměnné)?

Bohužel v postgresql je SELECT COUNT(*) často pomalejší než mysql ke kterému se často přirovnává.

Následující dotaz můžete použít jako alternativu k SELECT COUNT(*).

 SELECT reltuples FROM pg_class WHERE relname = 'mytable';

Toto není vždy 100% aktuální, ale u neměnných tabulek to bude vždy přesné. A okamžitě. U velmi velkých tabulek bude procentuální chyba velmi malá, a proto stojí za masivní úsporu času.

Pokud na tom záleží a tabulka neobsahuje nuly, můžete použít

 SELECT COUNT(primary_key_column) FROM table

a to bude výrazně rychlejší než SELECT COUNT(*)




  1. Laravel Migration přidat pole poté, co jsou data v tabulce?

  2. Musím po uložení uvolnit výsledek mysql?

  3. Změnit plán provádění dotazu v postgresql ručně?

  4. Data sloupce kontingenční tabulky MySQL jako řádky