3 min read

PostgreSQL 18 Beta 1 is Here: Async I/O, Smarter Upgrades & More

PostgreSQL 18 Beta 1 introduces async I/O, smarter upgrades, detailed EXPLAIN output, vacuum/analyze timing, UUIDv7, and OAuth 2.0 support. Explore how these features boost performance, observability, and integration in real-world use cases.
PostgreSQL 18 Beta 1 is Here: Async I/O, Smarter Upgrades & More

PostgreSQL 18 Beta 1 just dropped, and it’s packed with features that should get both developers and DBAs pretty excited. From performance improvements to operational upgrades and modern authentication support, this release isn’t just about incremental changes—it’s about pushing PostgreSQL forward in some meaningful ways.

Here’s a quick dive into what stood out to me, with a mix of serious highlights and a few friendly observations along the way.

Async I/O: Finally, Non-Blocking PostgreSQL!

Up until now, all I/O in PostgreSQL was synchronous—queries would block until the data arrived. With PostgreSQL 18, that changes. We now have asynchronous I/O, allowing the database to kick off multiple read operations in parallel and keep processing while waiting for results.

You can configure the behavior using the new io_method setting:

  • sync: the classic behavior
  • worker: uses background I/O workers (this is the new default)
  • io_uring: Linux-only, ultra-efficient, kernel-level magic

Early benchmarks show 2–3x speedups on read-heavy workloads with io_uring.

There’s also a new view, pg_aios, to monitor I/O operations in flight. So yes, we’re not just faster—we’re observably faster.

Smarter, Faster Upgrades

Version upgrades can be stressful—especially when performance takes a hit post-upgrade due to lost statistics. That’s now largely solved. PostgreSQL 18’s pg_upgrade carries over planner statistics from the old cluster.

Unless you disable it with --no-statistics, this means:

  • Query plans remain optimized right after the upgrade
  • No more “wait for ANALYZE to finish everything” situations

Two other additions make upgrades even smoother:

  • --jobs: runs upgrade checks in parallel to save time
  • --swap: swaps data directories in place rather than copying them (use carefully—this modifies the source cluster)

For anyone managing large databases: this is a big win.

More Insightful EXPLAIN ANALYZE

Query analysis just got a big boost. EXPLAIN ANALYZE now includes:

  • Buffer and I/O usage by default
  • Number of index lookups per index scan node
  • In VERBOSE mode: CPU time, WAL writes, average read timing

If you’ve ever stared at a slow query and thought "but why though?", PostgreSQL 18 might finally answer that for you.

Vacuum & Analyze Stats, Now With Timing!

The pg_stat_all_tables view now includes:

  • total_vacuum_time, total_autovacuum_time, etc.
  • Timing information for each table, even from auto-tasks

If you enable track_cost_delay_timing, you’ll also get detailed logs of autovacuum delays and progress reports from related views.

It’s a small detail, but incredibly useful for diagnosing bloat or long-running maintenance tasks.

UUIDv7: Chronological IDs Are In

Need time-sortable UUIDs? PostgreSQL 18 adds a native uuidv7() function that gives you exactly that.

These are great for:

  • Ordered inserts
  • Time-sensitive caching
  • Distributed systems that care about key order

Also, for clarity, uuidv4() is now officially an alias for gen_random_uuid().

Small change, big readability win.

Performance Improvements: Under-the-Hood Gains

Every release comes with some performance love, and PostgreSQL 18 doesn’t disappoint.

  • Parallel GIN index builds: Full-text search and JSON indexing just got faster
  • Skip scan support in btree indexes: fewer unnecessary reads
  • IN (VALUES) and repeated OR conditions are now transformed into efficient ANY(array) operations

It’s these kinds of under-the-hood improvements that quietly but powerfully improve day-to-day performance.

OAuth 2.0 Authentication Support

PostgreSQL now supports OAuth 2.0 token-based authentication natively.

Just configure it like any other method in pg_hba.conf, and use the new oauth_validator_libraries setting to load token validation plugins.

This opens the door to seamless integration with external identity providers—a very welcome addition for modern applications and enterprise environments.

PostgreSQL 18 Beta 1 is more than just a sneak peek—it’s a solid step toward a more capable, performant, and manageable database.
If you work with Postgres, I highly recommend spinning up a local beta instance and testing it with real workloads. Your feedback could help make the final release even better.
Once it’s stable, hosting providers like Neon are expected to roll out support quickly—just like they did with Postgres 17.

What feature are you most excited about?
Personally, I’m loving the async I/O—because who doesn’t like getting results before they finish loading?