Time: 09:00 - 17:00
Room: Berlin A
A whole-day training session focused on areas that you should master to tune PostgreSQL for performance. The training starts by explaining the overall architecture of the database system, how it interacts with the operating system and what settings are important; both in PostgreSQL and the operating system itself.
PostgreSQL is a multi-user system executing queries in parallel and it uses a fair amount of locking to co-ordinate those independent processes. As locks are a natural enemy of parallel systems, we'll spend some time explaining the basics of locking in PostgreSQL and how to investigate these issues. We'll also look at the basics of MVCC, a PostgreSQL feature that allows database systems to reduce the amount of locking. It's important to understand the basic MVCC idea as it has consequences for maintenance, particularly with regards to reclaiming space by VACUUM/autovacuum.
We will then discuss topics that are relevant for performance optimisation at the query level, such as; alternative ways to design a database, workload analysis, indexes, using EXPLAIN to tune queries, partitioning and - as a continuation of the MVCC discussion - transactions and isolation levels.