#​560 — June 26, 2024

Web Version

Together with  Render logo

Postgres Weekly

Making the Postgres Visibility Map Visible — If you’ve never gone far down the Postgres performance or transactions rabbit hole, you may have never encountered the visibility map. It’s a mechanism by which Postgres tracks which pages of a table contain only tuples that are visible to all transactions. This has some performance implications.

Laurenz Albe

A Mentoring Program for Postgres Contributors — Prolific Postgres contributor Robert Haas is starting a mentoring program where people who want to contribute code to Postgres can be mentored by current committers. It’s only open to nine people so far, but this is a great opportunity for anyone interested.

Robert Haas

Render Is Your Fastest Path to Production — Whatever your stack you can build, deploy quickly, update and confidently scale your apps with ease, from the first to the billionth user. Start building with Render for free — the modern cloud for devs.

Render sponsor

QUICK BITS:

Custom ENUM Type Columns and ORDER BYEnumerated types make it easy to enforce constraints on what can go in certain columns, but you might need to take care when ordering them.

Christoph Schiessl

A Post-Mortem of Some Postgres 'Out of Shared Memory' Errors — Too many locks spoil the broth.

Andrea Baida

▶️ POSETTE Talks Worth Watching

Microsoft's POSETTE event took place entirely online earlier this month and all the talks are already available on YouTube. I've been watching or skimming through as many as I can and some certainly jumped out, if you have some time...

▶  Tuning Parameters vs. Tuning Your Queries — It’s great to see a well known name in the Postgres space stepping forward to debunk the idea that tuning configuration parameters can solve all your Postgres performance problems. She also walks through an example where tuning a query yields immense benefits.
Henrietta Dombrovskaya

▶  Postgres Performance Tips You Have Never Seen Before v2.0 — Hans-Jürgen certainly knows how to title a talk to get attention! Luckily he delivers the goods too. It’s a real ‘grab bag’ of stuff but if you have 25 minutes, you’ll pick something up.
Hans-Jürgen Schönig

▶  Semantic Search with Django, Postgres, and pgvector — While this does cover the use of embeddings to create semantic search systems, the focus is otherwise entirely on Django.
Paolo Melchiorre

This isn't everything worth watching, of course. You can find the full playlist here and we've linked to some of the other talks previously too.

An Introduction to Generated Columns in Postgres — In Postgres, generated columns are columns that are automatically populated based upon the result of a user-defined expression when rows are inserted or updated.

Craig Hafer

Load from Postgres to Postgres Faster via DuckDB — How to export and import data from Postgres to Postgres in a fast way with ConnectorX and DuckDB.

Simon Späti

💫 GOLDEN OLDIES:

A few older posts I come back to from time to time:

📄 Fuzzy Text Search: From Not So Fuzzy to Fuzziest Brendan Scullion

📄 Vectors are the New JSON in Postgres Jonathan Katz

📄 An SQL Recipe: Comparing with Neighbors Anton Zhiyanov

📄 Postgres Indexing: When Does BRIN Win? Paul Ramsey

📰 Classifieds

Thinking about your career? We reveal the big changes to the database landscape in 2024 and beyond - and what you can do to navigate them.


🚀 Try Rocketadmin’s seamlessly generated database admin panels and benefit from its smart record editing capabilities. No coding required!

🛠 Code and Tools

pgModeler: A Postgres Database Modelling Tool — An easy way to create and edit database models in a more visual way. It’s packaged up as a paid product but is also open source (GPLv3 – repo here) so you can build it yourself.

Raphael Araújo e Silva

The Dalibo Postgres Execution Plan Visualizer — Give this the output from EXPLAIN ANALYZE and get a better view at what Postgres plans to do with your query. It’s also open source if you want to use it locally or within an app.

Dalibo

pg_squeeze: Extension to Automate Table Bloat Cleanup — While it’s not a replacement for vacuuming, it’s a handy extension to go a step further and gain even more space improvements in-situ.

CYBERTEC

pspg: A Unix Pager Designed for Postgres Tables — If you use psql you probably use less as your pager, but it doesn’t directly support tabular data. This does. Nowadays, it also supports MySQL, CSV and TSV too.

Pavel Stehule

pg_easy_replicate: Switch Databases with Minimal Downtime — A Ruby-powered orchestrator to simplify the task of setting up logical replication between two Postgres databases then letting you switch over to the newer one with minimal downtime.

Shayon Mukherjee