Index Bloat in Postgres: Why It Matters, How to Identify, How to Resolve
Index bloat in Postgres can cause problems, but it’s easy to miss.
I’ve written about how vacuum problems can prevent PostgreSQL from …
Read Moreon • 3 min read
Brent Ozar (blog | twitter) had an idea: a group of people should blog about writing which they’ve loved this year by people in the SQL community. For each “day of SQL,” someone picks a blog which they thought was great and writes about it.
Yesterday was Day 8, when Karen Lopez talked about a post by Louis Davidson and asked “What is your over/under?” Karen is a great speaker, an inspiring writer, and just an incredibly interesting person. Check out her post!

This day of SQL is not about nine ladies dancing. (Sorry Karen!) Instead, it’s devoted to one New Zealander writing: his name is Paul White (blog | twitter).
First off, let me say that Paul White’s blog, “Page Free Space,” is just plain awesome. When I see Paul’s written a new post I know to allocate some time for it and read it through slowly, and that I should expect to have to think about what I’m reading to understand it.
I swear I can sometimes feel things moving around in my head when I read Paul’s posts. Apply the warning about overhead bins during flight: be careful, contents may shift while you’re reading Paul White’s blog.
I picked Paul’s post, The Case of the Missing Shared Locks.
There’s a lot to love about this post. It is a great demonstration that things aren’t as simple as they seem.
Paul starts the post with the question:
If I hold an exclusive lock on a row, can another transaction running at the default read committed isolation level read it?
The answer to that would seem fairly straightforward. But in fact, things are pretty complicated. However, if you go through it slowly and really look at the examples, it can help you understand a lot about locking.
This is good.
Have you ever said something along these lines? “I’d like to give a presentation sometime, but I don’t have anything to talk about.”
Or, “I’m not sure that I have anything that interesting to fill a whole hour.”
Well, take a look at Paul’s post. He took something small, and he looked very closely at it. He played with it a couple of different ways, and he worked on it to see how it behaved. He stepped through it in a series of short, straightforward steps.
You can do the same thing with many things you’re familiar with. You can take a topic, or a feature, or a method of doing something and distill it into an interesting question. You can then look closely at the question and work with it carefully. Use it as a chance to explore something. You’re probably familiar with it, but by taking the time to write about it or present it, you’ll have the opportunity to get to know it better than you ever thought you could.
I’m handing the dreidl off to Crys Manson (blog | twitter) for Day 10.
Crys is a seriously great DBA, a fantastic friend, and she sometimes makes me snort liquid through my nose laughing.
Tag, Crys, you’re it!
If you want to check out where we’ve been so far, we’ve had:
Copyright (c) 2025, Catalyze SQL, LLC; all rights reserved. Opinions expressed on this site are solely those of Kendra Little of Catalyze SQL, LLC. Content policy: Short excerpts of blog posts (3 sentences) may be republished, but longer excerpts and artwork cannot be shared without explicit permission.