Next to character encoding, time zones are among the least-loved topics in computing. In addition, PostgreSQL's implementation of timestamp […]
How to DROP ROLE or DROP USER in PostgreSQL
by
Laurenz Albe |
03.2022 You might, at first glance, believe that DROP ROLE (or DROP USER, which is the same) is a simple […]
Query parameter data types and performance
by
Laurenz Albe |
03.2022 Recently, I could help solve a “mysterious” performance problem for a customer. The problem turned out to be a […]
Pipeline mode for better PostgreSQL performance on slow networks
by
Laurenz Albe |
03.2022 It is known that high network latency is bad for database performance. PostgreSQL v14 has introduced “pipeline mode” for […]
Automatic partition creation in PostgreSQL
by
Laurenz Albe |
02.2022 Table partitioning is one of the best-liked features out of the more recent PostgreSQL developments. However, there is no […]
Entity-attribute-value (EAV) design in PostgreSQL - don't do it!
by
Laurenz Albe |
11.2021 Customers have often asked me what I think of “Entity-attribute-value” (EAV) design. So I thought it would be a […]
TCP keepalive for a better PostgreSQL experience
by
Laurenz Albe |
10.2021 (Updated 2023-06-22) If you've heard about TCP keepalive but aren't sure what that is, read on. If you've ever […]
WITH HOLD cursors and transactions in PostgreSQL
by
Laurenz Albe |
10.2021 Both cursors and transactions are basic ingredients for developing a database application. This article describes how cursors and transactions […]
Most database tables have an artificial numeric primary key, and that number is usually generated automatically using a sequence. […]
JSON in PostgreSQL: how to use it right
by
Laurenz Albe |
09.2021 The comprehensive JSON support in PostgreSQL is one of its best-loved features. Many people – particularly those with a […]