<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/looking-forward-to-postgres-19-checkpoint-control-gf6czphco" -->

---
title: Looking Forward to Postgres 19: Checkpoint Control
description: PostgreSQL 19 extends the CHECKPOINT command with a parenthesized option syntax, adding two new options. MODE FAST preserves the existing behavior of an...
canonical: https://daily.dev/posts/looking-forward-to-postgres-19-checkpoint-control-gf6czphco
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Looking Forward to Postgres 19: Checkpoint Control | daily.dev
og:description: PostgreSQL 19 extends the CHECKPOINT command with a parenthesized option syntax, adding two new options. MODE FAST preserves the existing behavior of an...
og:url: https://daily.dev/posts/looking-forward-to-postgres-19-checkpoint-control-gf6czphco
og:image: https://api.daily.dev/og/posts/gf6cZphcO.png
og:image:alt: Looking Forward to Postgres 19: Checkpoint Control
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Looking Forward to Postgres 19: Checkpoint Control

**[Planet PostgreSQL](https://daily.dev/sources/planet-postgresql)** · 9 min read · 0 upvotes · 0 comments

## Summary

PostgreSQL 19 extends the CHECKPOINT command with a parenthesized option syntax, adding two new options. MODE FAST preserves the existing behavior of an immediate full flush, while MODE SPREAD paces writes over a longer window using checkpoint_completion_target and checkpoint_timeout settings, avoiding I/O spikes on busy servers. The FLUSH_UNLOGGED option forces dirty buffers from unlogged tables to disk during a checkpoint — something that normally only happens at clean shutdown. Benchmarks demonstrate MODE SPREAD taking over two minutes versus ~400ms for FAST on the same 517MB dataset. When concurrent checkpoint requests collide, Postgres consolidates them using the most urgent attributes, so these options act as preferences rather than guarantees. The changes are backward-compatible and don't affect automatic background checkpoints.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://postgr.es/p/9pX>

---

Tags: [#database](https://daily.dev/tags/database), [#postgresql](https://daily.dev/tags/postgresql)

[View this post on daily.dev](https://daily.dev/posts/looking-forward-to-postgres-19-checkpoint-control-gf6czphco)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Looking Forward to Postgres 19: Checkpoint Control","url":"https://daily.dev/posts/looking-forward-to-postgres-19-checkpoint-control-gf6czphco","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/looking-forward-to-postgres-19-checkpoint-control-gf6czphco"},"datePublished":"2026-07-17T11:49:54.106Z","dateModified":"2026-07-17T11:51:10.957Z","description":"PostgreSQL 19 extends the CHECKPOINT command with a parenthesized option syntax, adding two new options. MODE FAST preserves the existing behavior of an...","image":"https://postgr.es/static/images/pgEdge-favicon.webp","thumbnailUrl":"https://postgr.es/static/images/pgEdge-favicon.webp","isAccessibleForFree":true,"articleSection":"Planet PostgreSQL","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Planet PostgreSQL","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/planet-postgresql"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/looking-forward-to-postgres-19-checkpoint-control-gf6czphco","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"database,postgresql","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet PostgreSQL","item":"https://daily.dev/sources/planet-postgresql"},{"@type":"ListItem","position":3,"name":"Looking Forward to Postgres 19: Checkpoint Control"}]}
```

