PostgreSQL 15 的第一個 beta 版本現已。公告,此版本包含 PostgreSQL 15 普遍可用時將提供的所有功能的預覽,但該版本的某些細節可能會在測試期間發生變化。
本著開源 PostgreSQL 社群的精神,官方建議使用者在系統上測試 PostgreSQL 15 的新功能,以幫助消除可能存在的錯誤或其他問題。雖然不建議使用者在生產環境中執行 PostgreSQL 15 Beta 1,但其鼓勵使用者找到針對此 Beta 版本執行典型應用程式工作負載的方法。「您的測試和反饋將幫助社群確保 PostgreSQL 15 版本符合我們提供世界上最先進的開源關聯式資料庫的穩定、可靠版本的標準」。詳情可檢視。
PostgreSQL 15 功能亮點
開發者體驗
PostgreSQL 15 新增了用於簡化和增強開發人員體驗的新功能。此版本引入了,這是一個 SQL 標準命令,用於有條件地對資料執行寫操作(INSERT
、UPDATE
或DELETE
)。在此版本之前,同樣的行為可以使用儲存過程或在有限的基礎上使用 來完成。「使用 PostgreSQL 15,開發人員可以編寫簡單、富有表現力的查詢來選擇要採取的適當資料修改操作。」
作為 的一部分,PostgreSQL 在 2012 年曾增加了對 JSON 的支援。五年後釋出的 SQL/JSON 標準指定了用於存取和操作儲存在關聯式資料庫中的 JSON 資料的各種介面。PostgreSQL 15 在其現有的對 SQL/JSON 路徑語言的支援的基礎上,加入了更多標準的 。其中包括 、,以及將 JSON 資料轉換成 table 的能力。
PostgreSQL 15 增加了,包括regexp_count
, regexp_instr
, regexp_like
, 和regexp_substr
。 函數在 PostgreSQL 15 中引入,用於將 聚合為multirange
型別,現在也支援聚合multirange
型別。
Performance
PostgreSQL 15 包括對較巨量資料集進行排序時對資料進行排序的顯著加速,特別是超過work_mem
引數的資料集。
PostgreSQL 15 的效能提升還擴充套件到了各種查詢型別。包括為語句引入並行化,以及對使用 row_number()、rank() 和 count() 的 window functions 的效能改進。使用 來管理遠端 PostgreSQL 伺服器上的資料的應用程式,現在可以使 transactions 以並行方式提交。對於涉及帶有分割區的表的查詢,也一些效能增強。
用於儲存大於單頁 (8kB) 的資料的 PostgreSQL 系統和 TOAST tables 現在可以利用利用重複索引,並從更小的索引和更快的查詢中獲益。
用於批次載入資料的 psql \copy 命令在 PostgreSQL 15 中也有效能改進。
Backups、Archiving 和 Compression
PostgreSQL 15 為各種元件增加了對 Zstandard(zstd)壓縮的支援。,一個用於對 PostgreSQL 叢集進行完整備份的實用程式,現在支援使用 Gzip、LZ4 或 Zstandard 壓縮的伺服器端壓縮。pg_basebackup
使用者端現在還可以解壓縮使用 LZ4 和 Zstandard 壓縮的備份。
Write-ahead log (WAL) 檔案現在可以通過設定引數使用 LZ4 和 Zstandard 壓縮法進行壓縮。此外,PostgreSQL 15 還新增了選項,可以通過預取資料塊來幫助加快恢復操作。此版本新增了一個叫做的新模組,讓你可以直接從 SQL 檢查有關 WAL 檔案的資訊。
PostgreSQL 15 允許你通過指定一個來執行 WAL 歸檔,而不需要執行 shell 命令。可以在模組中找到範例 WAL 歸檔庫。此外,擴充套件現在可以定義自己的 WAL 資源管理器,讓他們與邏輯複製一起使用。
Logical Replication
PostgreSQL 15 為邏輯複製引入了 row filtering 和 column filtering 。此外,使用者現在可以方便地指定釋出模式中的所有 tables,而以前只能對資料庫中的所有 tables 執行此操作。
的更多支援。使用者現在可以指定disable_on_error
,以便在發生錯誤時自動停止邏輯複製。PostgreSQL 15 可以使用 命令跳過 applying changes。
Administration
PostgreSQL 15 引入了 。這允許 PostgreSQL 紀錄檔被許多執行結構化紀錄檔聚合和分析的程式使用。PostgreSQL 15 現在預設記錄緩慢的 checkpoints 和 autovacuum operations。
使用者端現在有一個\dconfig
命令,用於檢查設定引數的值。預設情況下,\dconfig
顯示任何未設定為其預設值的設定引數。
PostgreSQL 15 現在將所有伺服器級別的統計資訊儲存在共用記憶體中。伺服器不再執行 statistics collector process。
命令現在可以修改 table 的ACCESS METHOD
,用於設定 table 使用的儲存系統。
Security
PostgreSQL 15 在 PostgreSQL 叢集中建立資料庫時引入了新的預設值。建立新資料庫時,資料庫所有者之外的使用者(由表示)和超級使用者不能再在預設public
模式中建立物件。
PostgreSQL 15 增加了對「」的支援,它使用執行查詢的使用者而不是建立檢視的使用者的許可權。
PostgreSQL 15 中的非特權使用者現在可以通過SET
和ALTER SYSTEM
被更改伺服器變數的特權。
有關新功能和更改功能的完整列表可檢視 。