Database systems don't just slow down in a clear, linear way. They reach a certain point and start failing, often very suddenly and surprisingly.

This talk is about some of the most common scaling "discontinuities" in PostgreSQL, and how to plan for them and mitigate them. Why is SERIAL a bad primary key on high-insert-rate tables? What happens when autovacuum can't keep up? How do you know you don't have enough memory for your queries? What happens when a query that worked just fine before suddenly has a horrible plan?

Drawn from real-life examples, we'll go over these and show how to fix them… and avoid them in the first place.