PostgreSQL 18: Better I/O performance with AIO
PostgreSQL 18 is around the corner and it is time to take a look at one of the most important […]
Reconsidering the interface
Recently, a great presentation “1000x: The Power of an Interface for Performance” from Joran Dirk Greef from TigerBeetle made the […]
The Cost of TDE and Checksums in PGEE
It's been a while since the last performance check of Transparent Data Encryption (TDE) in Cybertec's PGEE distribution - that […]
Can Collations Be Used Over citext?
Introduction Recently, I read Laurenz Albe's blog about case insensitive string search. He recommended case insensitive collations, saying, "it won't […]
I recently helped a customer with a slow query. Eventually, an ANALYZE on a partitioned table was enough to fix […]
Should I rebuild my PostgreSQL index?
by
Laurenz Albe |
08.2025© Laurenz Albe 2025 People often ask “How can I automatically rebuild by indexes regularly?” or “When should I rebuild […]
btree_gist improvements in PostgreSQL 18
by
Bernd Helmle |
08.2025Motivation The extension btree_gist lives in PostgreSQL contrib and implements btree-like operators and behavior on top of the GiST framework. […]
PostgreSQL storage: Comparing storage options
PostgreSQL offers more than just traditional row storage. We benchmarked row store, column store, CSV, and Parquet across 144 million rows - see what storage really saves space and boosts performance.
Preserve optimizer statistics during major upgrades with PostgreSQL v18
by
Laurenz Albe |
06.2025© Laurenz Albe 2025 Everybody wants good performance. When it comes to the execution of SQL statements, accurate optimizer statistics […]
SELECT FOR UPDATE considered harmful in PostgreSQL
by
Laurenz Albe |
06.2025© Laurenz Albe 2025 Recently, while investigating a deadlock for a customer, I was again reminded how harmful SELECT FOR […]