In PostgreSQL 12 the Just-in-Time (JIT) compilation will be enabled by default. Memory consumption of COPY and function calls will be reduced and the search performance for multi-byte characters will also be improved.
Updates to server configuration will add the ability to enable/disable cluster checksums using pg_checksums. It should also reduce the default value of autovacuum_vacuum_cost_delay to 2ms and allows time-based server variables to use micro-seconds.
The speed of btree index insertions should be optimized for PostgreSQL. The new code will also improve the space-efficiency of page splits and should further reduce locking overhead, and gives better performance for UPDATEs and DELETEs on indexes with many duplicates.
PostgreSQL 12 should also allow recovery parameters to be changed with reload. These parameters include, archive_cleanup_command, promote_trigger_file, recovery_end_command, and recovery_min_apply_delay. It also allows streaming replication timeout.
The special behavior of OID columns will likely be removed, but columns will still be explicitly specified as type OID. The operations on tables that have columns named OID will need to be adjusted.
Data types abstime, reltime, and tinterval look as though they'll be removed from PostgreSQL 12.
Geometric functions and operators will be refactored to produce better results than are currently available. The geometric types can be restructured to handle NaN, underflow, overflow and division by zero.
To learn more about what's likely to be coming to PostgreSQL 12, check out the official announcement.
Building a scalable PostgreSQL solution
PostgreSQL security: a quick look at authentication best practices [Tutorial]
How to handle backup and recovery with PostgreSQL 11 [Tutorial]