Michael Christofides

Michael Christofides

@michristofides.com

Half of the team behind @pgmustard.com and (a different) half of the team behind Postgres FM

124 followers187 following43 posts

Michael Christofides reposted

€10 for a frontier AI subscription are gone in one workday. €10 for my book SQL Performance Explained has a lasting impact on you*. sql-performance-explained.com Learning fundamentals that don't change always has a lasting effect. * you also need to read it, which takes about 1 day ;)

sql-performance-explained.comSQL Performance Explained - buy directly from the author with free deliverySQL Performance Explained: Everything developers need to know about database performance by Markus Winand

Michael Christofides reposted

The upcoming Postgres 19 is set to include extra EXPLAIN info in several places: 🚦 An "IO" parameter (async info) 💡 Generated and supplied hint info (pg_plan_advice) ♻️ Memoize estimate fields 🪵 WAL full page image bytes We've added support for them all in @pgmustard.com 🎉

Michael Christofides reposted

New blog post: Read efficiency issues in Postgres queries If you've got a query that's slowly degrading in performance, you might have a read efficiency issue. The root cause could be table bloat, index bloat, or data locality degradation. www.pgmustard.com/blog/read-ef...

pgmustard.comRead efficiency issues in Postgres queries - pgMustardA lot of the time in database land, our queries are I/O constrained. As such, performance work often involves reducing the number of page reads. Indexes are a prime example, but they don’t solve every...

Michael Christofides reposted

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

Michael Christofides reposted

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

Michael Christofides reposted

Big performance problems 🤝 tiny CS tricks Our latest blog breaks down how bloom filters helped us take an API from 5s to 0.3s - even with millions of alerts in play. If you’re fighting slow queries or Postgres under pressure, this one’s worth a look: go.incident.io/r9jgcI9

Michael Christofides reposted

Explain is a powerful tool in Postgres. If you care about performance, get comfortable running `explain` and `explain analyze` commands regularly, and learn how to interpret its output. This blog is a great intro. www.depesz.com/2013/04/16/e...

Michael Christofides reposted

I'm not sure @ankane.bsky.social is human - maybe some kind of open source being from the future 😂 I said to a colleague - "we'll see, but it's ankane, so it's entirely possible it'll get done soon". Less than an hour later, it was updated 🤯

Michael Christofides reposted

New blog post: "What do the new Index Searches lines in EXPLAIN mean?" In Postgres 18 you'll start seeing things like "Index Searches: 1" on each of your index scans. We looked into what they mean, and how that information can be helpful. www.pgmustard.com/blog/what-do...

pgmustard.comWhat do the new Index Searches lines in EXPLAIN mean? - pgMustardIn Postgres 18 you’ll now see “Index Searches” lines in EXPLAIN ANALYZE output. If like me you were wondering what those mean exactly, you’re in the right place.

Michael Christofides reposted

The upcoming Postgres 18 is set to include some nice improvements to EXPLAIN: * BUFFERS on by default with ANALYZE 🎉 * Fractional "actual rows" (huge in some cases) * Quite a few new fields (including the very cool Index Searches) We've now added support for all of them. 💛

Next week (14th) I'll be joining the excellent Postgres Meetup for All to demo and discuss troubleshooting slow queries using EXPLAIN and external tools: www.meetup.com/postgres-mee... If you or your team could do with an intro or refresher, it would be great to see you there!

meetup.comPostgres Meetup for All | MeetupCalling all Postgres enthusiasts! Do you work with Postgres? Do you want to be more involved in the community? Share your learnings? Join our vibrant online community dedicated to PostgreSQL, the worl...

Proud to be sponsoring PGDay UK. It’s lovely having a local event and it’s been great each time I’ve attended. It’ll be in London again on September 9th. Let me know if you’ll be there too! P.s. they’re currently looking for speakers (and sponsors!)

PGDay UK@pgday.uk

Welcome pgMustard as a Supporter sponsor of PGDay UK 2025 in London! 2025.pgday.uk/sponsors/ #postgresql #pgdayuk #london

Michael Christofides reposted

If you've become your company's designated Postgres expert, learning to navigate Postgres source code can be a useful skill, even if you're not a C programmer. For instance, the docs do not specify how the optimizer works, but there is a detailed readme in the source: github.com/postgres/pos...

github.compostgres/src/backend/optimizer at master · postgres/postgresMirror of the official PostgreSQL GIT repository. Note that this is just a *mirror* - we don't work with pull requests on github. To contribute, please see https://wiki.postgresql.org/wiki/Subm...

If you ever need to tidy up poor audio (especially speech, eg for podcasts) I highly recommend Auphonic: auphonic.com It can make echoey audio sound almost like a studio, and it can even remove things like sirens (when we have New York based guests), which blows my mind 👏

For anyone looking for a podcast app for iOS I can’t recommend Overcast highly enough. The rewrite of it recently scared me, but it’s somehow now even better than it was before, and it keeps adding useful features that I didn’t know I needed (like “Go back” when accidentally jumping 😍)

You are up to date.