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 behaviorworker: 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
VERBOSEmode: 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 repeatedORconditions are now transformed into efficientANY(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?