Michael Christofides

Michael Christofides

Founder of pgMustard

Appears in 122 Episodes

Benchmarking

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

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

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

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

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

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

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

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

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

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

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

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

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

Database branching

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

Version control for databases

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

Contributing to Postgres

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

Stored procedures

Stored procedures

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

PostgreSQL 15

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

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.

Why is Postgres popular?

Why is Postgres popular?

Nikolay and Michael discuss why (and how) Postgres has been gaining popularity in recent years.

Index maintenance

Index maintenance

Nikolay and Michael discuss index maintenance — how do we know if or when we need it, and what we need to do.

Query macro analysis intro

Query macro analysis intro

Nikolay and Michael discuss query macro analysis — at the whole system level as opposed to an individual query.

WAL and checkpoint tuning

WAL and checkpoint tuning

Nikolay talks Michael through a host of nuances about WAL and checkpoint tuning.

Intro to query optimization

Intro to query optimization

Nikolay and Michael discuss query optimization — specifically for a single query, not at the system level.

How to become a DBA

How to become a DBA

Michael and Nikolay discuss various tasks, expectations, and roles involved in both junior and senior DBA roles, as well as some good learning resources to help along ...

Monitoring checklist

Monitoring checklist

Nikolay takes us through a checklist of important things to monitor, while Michael tries to keep up.

Vacuum

Vacuum

Nikolay and Michael discuss vacuum — what it is, why we need it, some improvements in recent years, and even a creative use for vacuum full.

NULLs: the good, the bad, the ugly, and the unknown

NULLs: the good, the bad, the ugly, and the unknown

Nikolay and Michael discuss NULLs — including some problems they can cause, a new feature coming in Postgres 15, and some learning resources we like.

BUFFERS by default

BUFFERS by default

Nikolay and Michael discuss BUFFERS — what they are, how they can be very useful for query optimisation, and whether they should be on by default (spoiler alert, we th...

BRIN indexes

BRIN indexes

Nikolay and Michael discuss BRIN indexes — how are they different to the default B-Tree index, when are they useful, and how they've improved in PostgreSQL 14.

Some kind things our listeners have said