3.4. PostgreSQL Schemas#
Last updated: September 29, 2024
We’ve now explored different ways that SQL can process and optimize our queries to improve performance and cost times. We’ll now take a look at what underlying information SQL accesses to do this.
3.4.1. PostgreSQL Schema Statistics#
public is a public schema that users can read/write/insert.
pg_catalog is specific to Postgres and includes settings, statistics, values, etc.
information_schema maintains metadata about objects in the database.
pg_toast maintains data that can’t regularly be stored in relations, such as very large data values.
In demo, we looked at what information we could retrieve from pg_catalog: relname
(name of table), relkind
(relation kind), reltuples
(number of tables), and relpages
(size of on-disk representation in pages). Similarly, we can look into pg_stats
to look at relation statistics, such as null_frac
(fraction of tuples that are null), avg_width
(average width in bytes of column’s entries), n_distinct
(estimated number of distinct values for that column), and more.
Note: reltuples
and relpages
are not updated on the fly, and are only approximated by VACUUM, ANALYZE, and a few DDL commands.