Advertisement · 728 × 90

Posts by Michael Christofides

Preview
Postgres FM | Comments and metadata Nik and Michael discuss query level comments, object level comments, and another way of adding object level metadata. Here are some links to things they mentioned: Object comments https://www.postg...

Hey! Have you looked into getting Hibernate to add comments to the SQL? That’s how some other ORMs do it and it works nicely. We even discussed it on a recent podcast episode postgres.fm/episodes/com...

3 weeks ago 2 1 0 0

pgMustard Pro now includes 1,000 API credits 🎉

Bulk-analyse plans, plug into your LLM workflows, or build something we haven't thought of yet.

Docs: pgmustard.com/docs#api

1 month ago 2 1 0 0

¿Por qué no los dos?

1 month ago 1 0 1 0
Preview
Read efficiency issues in Postgres queries - pgMustard A 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...

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...

1 month ago 1 1 0 0

Over on threads someone just use ai;dr and we all need to adopt that right quick

2 months ago 12080 4171 86 189
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.

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.

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

2 months ago 4 1 0 0
Preview
Office hours - pgMustard For January, I’m offering a private free call (up to 1 hour) to discus anything Postgres performance related.

If you have any Postgres performance issues, I'd love to hear about them and try to help: pgmustard.com/office-hours

3 months ago 4 4 0 0
Tomas Vondra - Performance Archaeology (PGConf.EU 2024)
Tomas Vondra - Performance Archaeology (PGConf.EU 2024) YouTube video by PostgreSQL Europe

Have you seen Tomas Vondra’s efforts in this area? m.youtube.com/watch?v=3_Cn...

3 months ago 2 0 1 0
Advertisement

Very cool! If you start a label, can I suggest Nusiic Records?

3 months ago 1 0 1 0

Is that a feature or a bug?

4 months ago 1 0 1 0

Cool, would be great to hear how it goes! A couple of new options I hadn’t heard of til lately are Apache Cloudberry and pg_lake. It’s cool to see such different implementation efforts, I’m curious to see which of all the options prove popular longer term

4 months ago 0 0 0 0

Hello! I don't always ask, but I the ones I've seen at that scale have mostly (all?) been sharded... does that count? There's a bunch of Postgres forks/extensions in this space at the moment (I know of them, but haven't tried most). Do you already have a shortlist of options?

4 months ago 2 0 1 0
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)

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)

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

4 months ago 3 1 0 0

I’m a heavy user of Things and a big fan of it! Recurring tasks have nice flexibility, you can choose either “every X”, or “Y after the last one was completed”.

Their reminders work well for me, but are only time based (some apps have location based reminders too).

Also no shared lists in Things

4 months ago 0 0 0 0
Post image

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

4 months ago 5 2 1 0
Post image

Today is the day -- end-of-life for Postgres 13

www.postgresql.org/support/vers...

4 months ago 1 1 0 0
Advertisement
Post image

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...

5 months ago 5 1 0 0
Post image

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 🤯

5 months ago 17 1 0 0
Preview
What do the new Index Searches lines in EXPLAIN mean? - pgMustard In 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.

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...

5 months ago 0 1 0 0
Preview
Postgres FM | Gadget's use of Postgres Nik and Michael are joined by Harry Brundage from Gadget to talk about their recent zero-downtime major version upgrade, how they use Postgres more generally, their dream database, and some challen...

2 million indexes! You’ve gotta listen to this in context of this Gadget episode with Harry — but that’s a wild figure! 😳

postgres.fm/episodes/gad...

6 months ago 3 1 0 0

Hello! I really like pg_stat_statements, then you can look into your queries by all sorts of metrics (eg for read heavy workloads, ordering by total_exec_time is a good starting point). Then I like to run EXPLAIN (ANALYZE, BUFFERS, etc) on the worst offender(s) to look for optimizations

6 months ago 1 0 1 0

Sometimes the trick to optimizing database queries is simple: Don't do stupid stuff.

7 months ago 8 1 0 0

I'm a bit out of date on the SQL Server side of things, but with Postgres have you already tried turning on track_io_timing and using more of the EXPLAIN parameters?

For example:

set track_io_timing = on;
explain (analyze, buffers, verbose, settings, wal) ...

7 months ago 1 0 0 0

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. 💛

7 months ago 4 3 1 0
Advertisement
Preview
Making Postgres 42,000x slower because I am unemployed As an respectable unemployed person must do, I tried to make Postgres as slow as possible

Amazing post on making Postgres slower (yes, slower!) on purpose. byteofdev.com/posts/making... #postgres #postgresql Favorite bit: "random_page_cost = 1e300" LOL! Well done

8 months ago 2 1 0 0
MultiXact member space exhaustion | Postgres.FM 151 | #PostgreSQL #Postgres podcast
MultiXact member space exhaustion | Postgres.FM 151 | #PostgreSQL #Postgres podcast YouTube video by PostgresTV

Really non-trivial case with MultiXacts and brilliant RCA and level of transparency from the Metronome team – great example of what to do with new types of #PostgreSQL incidents!

enjoyed discussion a lot! www.youtube.com/watch?v=9KoP...

8 months ago 2 1 0 1
Multigres | Postgres.FM 150 | #PostgreSQL #Postgres podcast
Multigres | Postgres.FM 150 | #PostgreSQL #Postgres podcast YouTube video by PostgresTV

PostgresFM with Sugu, co-creator of Vitess, originally created to shard MySQL in YouTube, and then used by GitHub, Pinterest, Slack, Shopify, etc. Discussed his work at Supabase on Multigres, sharding for PostgreSQL. Enjoyed a lot!! Take it to a long hike or drive: youtu.be/KOepJivmWTg?...

9 months ago 5 2 0 0

3 years of PostgresFM 🥳

And now, @michristofides.com being back from 2-week break, and we've recorded our 150th episode

A very interesting one, don't miss -- this Friday

9 months ago 8 1 0 0
Post image

Postgres Meetup for All tomorrow www.meetup.com/postgres-mee...

9 months ago 3 1 0 0