PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Indeks, aby uzyskać liczbę wierszy tabeli PostgreSQL tylko do odczytu (niezmiennej)?

Niestety w postgresql SELECT COUNT(*) to często wolniej niż mysql do których często się porównuje.

Możesz użyć następującego zapytania jako alternatywy dla SELECT COUNT(*).

 SELECT reltuples FROM pg_class WHERE relname = 'mytable';

Nie zawsze jest to w 100% aktualne, ale w przypadku niezmiennych tabel będzie za każdym razem dokładne. I natychmiast. W przypadku bardzo dużych tabel błąd procentowy będzie bardzo mały, a zatem wart ogromnej oszczędności czasu.

Jeśli ma to znaczenie, a tabela nie zawiera wartości null, możesz użyć

 SELECT COUNT(primary_key_column) FROM table

i będzie to znacznie szybsze niż SELECT COUNT(*)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Całkowita liczba 1 w masce bitowej Postgres

  2. Funkcje okien i bardziej lokalna agregacja

  3. (Jeden stół) weź wiersze bez połączenia

  4. Funkcja Postgres End Loop i błąd powrotu

  5. Dodawanie klucza do pustej kolumny hstore