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 […]
commit_delay for better performance: a PostgreSQL benchmark
by
Laurenz Albe |
01.2025We benchmark the performance boost that you can get by tuning commit_delay with a workload of small transactions.
Dealing with trigger recursion in PostgreSQL
by
Laurenz Albe |
10.2024This article describes the problem of endless trigger recursion in PostgreSQL and shows how to deal with it and get good performance.