PostgreSQL v12 new feature: optimizer support for functions
by
Laurenz Albe |
05.2019 PostgreSQL commit 74dfe58a5927b22c744b29534e67bfdd203ac028 has added “support functions”. This exciting new functionality that allows the optimizer some insight into functions. […]
Triggers to enforce constraints in PostgreSQL
by
Laurenz Albe |
04.2019 Sometimes you want to enforce a condition on a table that cannot be implemented by a constraint. In such […]
It is a frequent complaint that count(*) is so slow on PostgreSQL. In this article I want to explore […]
"LOCK TABLE" can harm your database's health
by
Laurenz Albe |
03.2019 Many people know that explicit table locks with LOCK TABLE are bad style and usually a consequence of bad […]
"Exclusive backup" method is deprecated - what now?
by
Laurenz Albe |
02.2019 UPDATE 12.07.2022: The “exclusive backup” method of calling pg_start_backup('label') before backup and pg_stop_backup() afterwards has been removed in PostgreSQL […]
UPDATED August 2024 pgbouncer is the most widely used connection pooler for PostgreSQL. This blog will provide a simple cookbook […]
Be prepared for prepared transactions
by
Laurenz Albe |
12.2018Prepared transactions are disabled in PostgreSQL by default, since the parameter max_prepared_transactions has the default value 0. You don't need […]
Since I only recently learned about the concept of “killed index tuples”, I thought there might be some others […]
Foreign Key Indexing and Performance in PostgreSQL
by
Laurenz Albe |
10.2018Foreign key constraints are an important tool to keep your database consistent while also documenting relationships between tables. A fact […]
Correlation of PostgreSQL columns explained
by
Laurenz Albe |
09.2018After you ANALYZE a PostgreSQL table to collect value distribution statistics, you will find the gathered statistics for each column […]