
Michael Christofides
Founder of pgMustard
Appears in 133 Episodes

pg_stat_statements
Nikolay and Michael discuss pg_stat_statements — why everyone should use it, but also some downsides! Here are links to a few things we mentioned: pg_stat_statements (...

auto_explain
Nikolay and Michael discuss auto_explain — what it is, how it can help, and how to check it's overhead. Here are links to a few things we mentioned: auto_explain (docs...

Queues in Postgres
Nikolay and Michael discuss queues in Postgres — the pros and cons vs dedicated queuing tools, and some tips for scaling. A couple of apologies-in-advance: Near the en...

Read-only considerations
Nikolay and Michael discuss a listener request — special considerations for databases that are used in a read-only mode all day, and get an update at night with additi...

Partitioning
Nikolay and Michael discuss table partitioning — what it is, why and when it's helpful, and some considerations for your partition key. Here are links to a few things ...

psql vs GUIs
Nikolay and Michael discuss command line and graphical user interfaces for Postgres — what they are, some tips and tricks for learning, and what we each use and prefer...

Upgrades
Nikolay and Michael discuss major and minor version Postgres upgrades — what they are, how often they come out, and how regularly we should be upgrading. Here are link...

Wait events
Nikolay and Michael discuss wait events — what they are, why we have them, and how to use them to help diagnose performance issues. Here are links to a few things we m...

TOAST
Nikolay and Michael discuss TOAST (The Oversized-Attribute Storage Technique) — what it is, how it works, and some general things to be aware of. Here are links to a f...

JSON
Nikolay and Michael discuss JSON — our options for storing it in Postgres, whether or when we should, as well as a brief intro and some tips for JSON functions availab...

Real-time analytics
Nikolay and Michael discuss real-time analytics — what it means, what the options are, and some tips if you're trying to implement it within Postgres. Here are links t...

Benchmarking
Nikolay and Michael discuss benchmarking — reasons to do it, and some approaches, tools, and resources that can help. Here are links to a few things we mentioned: Towa...

Default configuration
Nikolay and Michael discuss the default config — some tools and principles you can use to customise it, as well as several parameters you probably always want to chang...

Infra cost optimization
Nikolay and Michael discuss some options for reducing costs — from big-effort-big-reward items, to some smaller things that could also be very impactful.

Auditing
Nikolay and Michael discuss auditing — why we might want it, what the options are, and even an idea for a future solution...

Copying a database
Nikolay and Michael discuss copying a database — what the various options are, how to copy large databases, and some pointers on performance.

Transaction ID wraparound
Nikolay and Michael discuss transaction ID wraparound — what it is, and some ideas to minimise the risk of it ever happening to you!

Postgres year in review 2022
Nikolay and Michael discuss some highlights from the Postgres ecosystem this year — including exciting startups, educational resources, sharding, and more.

Row estimates
Nikolay and Michael discuss planner row estimation — how it can cause performance issues, how to spot problems, and various options we have to fix them.

Replication
Nikolay takes Michael through the different replication options for Postgres — looking at different use cases, the options for each, and some things to be careful with.

Timestamps
Nikolay and Michael discuss timestamps and time math in Postgres — particularly around data type choice, functions available, and some things to watch out for.

PostgREST
Nikolay and Michael discuss PostgREST (and some similar projects) — what it is, as well as the pros and cons of using it.

Materialized views
Nikolay and Michael discuss materialized views — what they are, the pros/cons, and some areas they can improve (and hopefully will!)

HOT updates
Nikolay and Michael discuss Heap-Only Tuple (HOT) updates — what they are, the benefits, and things you can do to optimize for them.

Database branching
Nikolay and Michael discuss database branching — how to define it, and the current state of tools and approaches.

Version control for databases
Nikolay and Michael discuss database schema version control — what we've seen, some options, and where we'd like to see improvements.

Contributing to Postgres
Nikolay and Michael discuss contributing to Postgres — whether to the code, or in other ways.

Stored procedures
Nikolay and Michael discuss the age-old topic of implementing business logic on the database side versus the application side.

PostgreSQL 15
Nikolay and Michael discuss PostgreSQL 15 which was released yesterday! We go through our favourite features and some other ones that caught our eye.

102 Query optimization
Nikolay and Michael discuss the next step of query optimization work — the difficult topic of how to verify your changes won't make other things worse.