pgmustard-logo-no-border.png
 

Helps you review Postgres query plans quickly

A simple yet powerful tool to help you speed up queries

 
 

Reading EXPLAIN ANALYZE output can be tough.

Even if you know how, Postgres includes so much useful information, it is easy to miss something important. And for queries that do a lot, the plans are even more useful-yet-time-consuming.

pgMustard speeds up your journey from knowing which query is a problem to working out what can be done about it.

You’ll be able to see at a glance where the time is going, as well as jump straight to the important statistics. If you need a refresher on what something means, or want to read up on how it works, those are there for you too.

We have also put effort into minimizing red-herrings, helping you avoid distractions like a sequential scan on a small table, or a bad row estimate on a fast subplan.

In short, pgMustard makes it quick and easy to understand a query plan, while staying focused on your main aim: making the query faster.

Features wise, you’ll get

  • Performance advice – scored by estimated time-saving potential

  • Per-operation timings¹

  • The number of rows¹ returned by each operation

  • A timing bar – that pins to keep it in context

  • Collapsible subtrees – with fast ones collapsed by default

  • Descriptions of operations

  • Links to blog posts for further reading

¹ Taking loops, threads, subplans, and CTEs into account.

The screenshot below shows an example where a large amount of the work could potentially be avoided, and there’s a conspicuous bad row estimate to boot.

 
Screenshot of pgMustard, with a large Nested Loop operation highlighted. The total time of the query is 259ms, the Nested Loop is 152ms, and there are two tips. The first tip is scored 5.0 for "Rows Discarded" and is expanded to show more advice.
 

We also have a few published examples, as well as a walkthrough on YouTube (7 minutes), if you want to take a closer look before trying it out on your own query plans.

The performance advice pgMustard can give includes

  • High index potential

  • Poor index efficiency

  • Operations on disk

  • Poor row estimates

  • Low cache hit rate

  • Excessive heap fetches

  • Poor read efficiency (can be a sign of bloat)

  • Lossy bitmap scans

  • High index-only scan potential

  • Late filters

  • CTE scans used only once

  • Slow counts

  • Excessive planning time

  • Poor read speed

  • Scope for increased parallelism

  • Suboptimal just-in-time (JIT) compilation

And the requirements are

  • TEXT or JSON format query plans, from PostgreSQL 9.6 or newer

  • The interface and advice are in English

  • A GitHub or Google account, for signing in

 

Our wonderful customers include

 

Read more testimonials



We believe performance matters. If you value it too, we’d love to support you.

We’re aware that you may only need pgMustard in bursts, a few times per year. As such, our pricing starts at 95€ per year.

Our free trial allows you to review five of your own query plans, as well as our examples. And if you have any questions, please do get in touch.