Sign in

pgMustard

@pgmustard.com
21 followers 1 following 18 posts

A visualisation tool for Postgres explain analyze that also gives performance advice. Posts by @michristofides.com‬. Site: pgmustard.com

PostsRepliesMedia
pgMustard @pgmustard.com · 20/01/2026
Our Read Efficiency tips are now more efficient to read! 📝 Better wording, mostly for clarity 🔬 More specific to the scan type, and therefore shorter in most cases 🌟 Improved scoring, especially for Bitmap Heap Scans More details: www.pgmustard.com/changelog
A screenshot of two pgMustard windows, with an example query plan in each, and an arrow pointing from the old version to the new. Each has a Bitmap Heap Scan highlighted, and the Read Efficiency tip expanded.
041
pgMustard @pgmustard.com · 12/12/2025
Bad row count estimates are a common cause of slow queries. We've had a tip for them in pgMustard from the start, but we've just finished a revamp of it, mostly to make the advice in several common cases clearer. We also now report the ratios a little more naturally.
A screenshot of pgMustard, focused on a tip that reads: "Row Estimate: out by a factor of 120. The query planner estimated that this operation would produce 283,853 rows per iteration, but it actually produced 2,444 (out by a factor of 120). Bad row estimates can lead to suboptimal query plans. They can often be improved by running ANALYZE on the tables involved, by increasing column statistics, or by allowing Postgres to assess the correlation between columns (using multivariate statistics)."
000
pgMustard @pgmustard.com · 26/11/2025
It was a very small sample size, but we were impressed with the number of people running newer Postgres versions in our recent poll 🙌
A chart showing 48% on 17 or 18, 42% on 15 or 16, 10% on 13 or 14, and nobody (admitting to being) on 12 or older
000
pgMustard @pgmustard.com · 24/11/2025
We've revamped our "Operation on Disk" tips ✨ * Made them clearer * Made them more succinct (in most cases) * Improved the scoring * Mention hash_mem_multiplier (when relevant) * Show "Operation in Memory" in more cases, with the memory used * Updated the linked blog post
A side my side comparison highlighting mostly how much more succinct a new version of the tip can be. The tip wording of the new version is as follows:

This operation wrote out to disk to store temporary data.

Disk space used: 282 MB

Reducing the size of the operation would make it faster, especially if you can get it to fit into working memory.

You can do this by reducing the number of rows, with a LIMIT clause, or reducing the size of each row, by operating on fewer columns.

Another option is to increase the memory available, by adjusting work_mem.

Learn more about working memory (underlined, as it's a link)
031
pgMustard @pgmustard.com · 11/11/2025
We're in the process of updating our EXPLAIN glossary for Postgres 18. This change was particularly satisfying 🎉
Screenshots of the BUFFERS page before and after, with the following text highlighted: "And from Postgres 18, it is on by default with ANALYZE."
020
pgMustard @pgmustard.com · 28/10/2025
The next chapter in our 7-year battle with EXPLAIN formatting: new demo videos showing how to get nicely formatted query plans in your tool of choice. www.youtube.com/@pgMustard
A screenshot of the pgMustard YouTube channel, showing 8 new videos, one per tool. They range from 2 minutes to 10 minutes in length.
010
pgMustard @pgmustard.com · 08/10/2025
Sorry for the slow reply! We're about to embark on updating our explain glossary for 18, and adding a page for "Index Searches" is top of the list. A blog post is probably a good idea too, thank you 🙏
100