PostgreSQL-18

PostgreSQL 18

Os principais recursos do PostgreSQL 18 incluem subsistema de I/O assíncrono (AIO) para scans e vacuums mais rápidos, colunas geradas virtuais (padrão agora), suporte a OAuth, OLD/NEW em RETURNING, e restrições temporais sem sobreposições.

Subsistema de I/O Assíncrono (AIO)

O PostgreSQL 18 introduz um subsistema de I/O assíncrono que melhora o desempenho de sequential scans, bitmap heap scans, vacuums e outras operações em até 3x para leituras. Controlado por io_method, com io_combine_limit e io_max_combine_limit para tuning, e view pg_aios para monitoramento de handles de arquivos. Isso é ideal para workloads de alto volume em servidores com SSDs NVMe.

Colunas Geradas Virtuais

Colunas geradas agora são virtuais por padrão (computadas na leitura, não escrita), com opção STORED para o comportamento antigo. 

Suporte a replicação lógica de valores gerados, útil para subscribers não-PostgreSQL via publish_generated_columns. 

Facilita computações derivadas sem overhead de storage.

Autenticação OAuth e Segurança

Login moderno com Google, Microsoft ou similares direto no banco.

Suporte nativo a OAuth em pg_hba.conf, com oauth_validator_libraries e –with-libcurl no build. 

Melhoria em SSL com ssl_tls13_ciphers múltiplos e ssl_groups incluindo X25519. 

Chaves de cancelamento de 256 bits e depreciação de MD5 para scram-sha-256.

Melhorias em Monitoramento

pg_stat_io agora reporta bytes lidos/escritos/extendidos, incluindo WAL I/O. pg_stat_all_tables ganha total_vacuum_time, total_analyze_time etc.; pg_stat_get_backend_io() para I/O por backend. pg_upgrade preserva estatísticas do otimizador, e funções como pg_restore_relation_stats() para reset seletivo.postgresql+1

Restrições Temporais e Constraints

PRIMARY KEY/UNIQUE/FK sem sobreposições via WITHOUT OVERLAPS ou PERIOD na última coluna. NOT NULL agora em pg_constraint com nomes, herança controlável e NOT VALID. CHECK/FK como NOT ENFORCED para cenários flexíveis.

Otimização de Queries e Índices

Skip scans em B-tree multi-coluna para casos sem restrições iniciais. GIN indexes criados em paralelo; joins partitionwise expandidos. Otimizações em GROUP BY, HAVING pushdown, e hash joins com menos memória.

Características Adicionais

  • RETURNING com OLD/NEW explícito em INSERT/UPDATE/DELETE/MERGE.
  • COPY com REJECT_LIMIT para ignorar erros em massa.
  • initdb com checksums por padrão (–no-data-checksums para desabilitar).
  • VACUUM/ANALYZE com ONLY para partitioned tables.
  • Funções array_sort(), array_reverse(), uuidv7(), crc32c().
  • psql com pipeline mode (\startpipeline etc.) e mais stats em \conninfo.