PostgreSQL 18 has made its debut, introducing a suite of enhancements designed to elevate performance and user experience. Among the most notable features is the implementation of asynchronous I/O, which empowers PostgreSQL to process multiple I/O requests concurrently. This advancement allows the database to significantly improve throughput, with performance gains reported to be as high as 3x in specific scenarios. Previously, the reliance on operating system readahead mechanisms limited efficiency, as these systems lacked insight into the unique access patterns of databases. The new asynchronous I/O feature addresses this shortcoming, optimizing data retrieval across various workloads.
Enhanced Upgrade Experience
Another significant enhancement in this release is the ability to retain planner statistics through major version upgrades. In prior versions, these statistics would not carry over, often delaying the attainment of expected performance levels post-upgrade. This improvement facilitates a smoother transition for upgraded clusters, allowing them to reach optimal performance more swiftly.
Improvements in Text Processing
Text processing capabilities have also received a boost with the introduction of the PG_UNICODE_FAST collation. This new collation provides comprehensive Unicode semantics for case transformations, enhancing the accuracy and efficiency of text handling. Furthermore, PostgreSQL 18 now supports LIKE comparisons on text utilizing nondeterministic collations, simplifying complex pattern matching tasks. The full-text search functionality has been refined as well, now leveraging the default collation provider instead of libc, thereby improving search accuracy.
Developer-Focused Features
In a bid to enhance the developer experience, PostgreSQL 18 includes several new features. Among these are virtual generated columns, which compute values at query time, and temporal constraints for PRIMARY KEY and UNIQUE constraints within WITHOUT OVERLAPS clauses. Additionally, developers can now create the schema definition of a foreign table by mirroring the definition of a local table through the CREATE FOREIGN TABLE … LIKE command.
Performance Optimizations
Performance optimizations are a hallmark of this release, featuring skip scan lookups on multicolumn B-tree indexes to enhance execution times for queries. Indexing improvements have also been made to optimize queries that utilize OR conditions in WHERE clauses, alongside advancements in how PostgreSQL plans and executes table joins. Notably, PostgreSQL 18 introduces support for hardware acceleration, including compatibility with ARM NEON and SVE CPU intrinsics for the popcount function.
Additional Updates
Other noteworthy updates in this release encompass support for OAuth 2.0, enhanced logging for logical replication write conflicts, and proactive freezing of pages during vacuum processes. Jonathan Katz, a member of the PostgreSQL core team, remarked, “The efforts of the global open source community shape every PostgreSQL release and help deliver features that meet users where their data resides. PostgreSQL 18 builds on the project’s long, rich history of delivering a reliable and robust data management experience, while continuing to expand the workloads it can support.”
A comprehensive list of updates can be found in the release notes here.