PostgreSQL 14 正式發布!

發布於 2021-09-30,作者:PostgreSQL 全球開發團隊
PostgreSQL 專案

PostgreSQL 全球開發團隊今天宣布發布 PostgreSQL 14,這是世界上 最先進的開源資料庫的最新版本。

PostgreSQL 14 帶來了各種功能,可協助開發者和管理員部署以資料為基礎的應用程式。 PostgreSQL 繼續為複雜的資料類型添加創新功能,包括更方便的 JSON 存取以及對非連續資料範圍的支援。 此最新版本延續了 PostgreSQL 在提高高性能和分散式資料工作負載方面的趨勢,並在連線並發、高寫入工作負載、查詢平行處理和邏輯複寫方面取得了進展。

PostgreSQL 核心團隊成員 Magnus Hagander 表示:「PostgreSQL 的最新版本提升了使用者大規模管理資料工作負載的能力,增強了可觀察性,並包含了可協助應用程式開發人員的新功能。PostgreSQL 14 證明了全球 PostgreSQL 社群致力於解決回饋意見並繼續提供創新資料庫軟體,該軟體已被大小型組織部署。」

PostgreSQL 是一個創新的資料管理系統,以其可靠性和穩健性而聞名,受益於 全球開發者社群超過 25 年的開源開發,並已成為各種規模的組織首選的開源關聯式資料庫。

JSON 便利性和多重範圍

自 PostgreSQL 9.2 發布以來,PostgreSQL 一直支援操縱 JSON 資料,儘管值的檢索使用了唯一的語法。 PostgreSQL 14 現在允許您使用下標存取 JSON 資料,例如,像這樣的查詢 SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; 現在可以使用了。 這使 PostgreSQL 與通常用於從 JSON 資料檢索資訊的語法保持一致。 添加到 PostgreSQL 14 的下標框架可以普遍擴展到其他巢狀資料結構,並且也應用於此版本中的 hstore 資料類型。

範圍類型,也是在 PostgreSQL 9.2 中首次發布,現在透過引入「multirange」資料類型支援非連續範圍。 多重範圍是一個非重疊範圍的排序列表,讓開發人員可以編寫更簡單的查詢來處理複雜的範圍序列。 PostgreSQL 原生的範圍類型(日期、時間、數字)支援多重範圍,並且可以擴展其他資料類型以使用多重範圍支援。

重度工作負載的效能改進

PostgreSQL 14 在使用大量連線的工作負載上提供了顯著的吞吐量提升,一些基準測試顯示速度提高了 2 倍。 此版本延續了最近對 B 樹索引管理的改進,減少了具有 頻繁更新索引的表上的索引膨脹。

PostgreSQL 14 引入了將 查詢流水線化到資料庫的能力,這可以顯著提高高延遲連線或具有許多小型寫入(INSERT/UPDATE/DELETE)操作的工作負載的效能。 由於這是一個用戶端功能,您可以將流水線模式與任何現代 PostgreSQL 資料庫與版本 14 用戶端或 使用 libpq 版本 14 建立的用戶端驅動程式一起使用。

分散式工作負載的增強功能

分散式 PostgreSQL 資料庫受益於 PostgreSQL 14。 使用 邏輯複寫時,PostgreSQL 現在可以將進行中的交易串流到訂閱者,從而為在訂閱者上應用大型交易帶來顯著的效能優勢。 PostgreSQL 14 還為支援邏輯複寫的邏輯解碼系統添加了其他幾個效能增強功能。

外部資料包裝器,用於跨 PostgreSQL 和其他資料庫處理聯合工作負載,現在可以在 PostgreSQL 14 中利用查詢平行處理。 此版本在 postgres_fdw 中實現了此功能,該外部資料包裝器與其他 PostgreSQL 資料庫介面。

除了支援查詢平行處理之外,postgres_fdw 現在還可以批量將資料插入外部表,並使用 IMPORT FOREIGN SCHEMA 指令匯入表分割區。

管理和可觀察性

PostgreSQL 14 將其效能提升擴展到 vacuuming 系統,包括優化以減少來自 B 樹的開銷。 此版本還添加了 vacuum「緊急模式」,旨在防止交易 ID 迴繞。 用於收集資料庫統計資料的 ANALYZE 現在在 PostgreSQL 14 中運行速度顯著加快,這是因為它自己的效能改進。

PostgreSQL 的 TOAST 系統的壓縮(用於儲存較大的資料,如文字或幾何區塊)現在可以配置。 PostgreSQL 14 為 TOAST 欄位添加了 LZ4 壓縮,同時保留了對 pglz 壓縮的支援。

PostgreSQL 14 添加了多個新功能來幫助監控和可觀察性,包括追蹤 COPY 命令進度的能力預寫日誌 (WAL) 活動,以及複寫槽上的統計資訊。 啟用 compute_query_id 讓您可以透過多個 PostgreSQL 功能(包括 pg_stat_activityEXPLAIN VERBOSE 等)唯一地追蹤查詢。

SQL 效能、一致性和便利性

查詢規劃和執行受益於 PostgreSQL 14 中的增強功能。 此版本包括對 PostgreSQL 的查詢平行處理支援的多項改進,包括平行循序掃描的效能改進、PL/pgSQL 在使用 RETURN QUERY 命令時執行平行查詢的能力,以及啟用 REFRESH MATERIALIZED VIEW 以執行平行查詢的能力。 此外,使用巢狀迴圈聯接的查詢可以透過 PostgreSQL 14 中添加的額外快取來提高效能。

擴展統計資訊 現在可以在 PostgreSQL 14 中用於表達式。 此外,視窗函數 現在可以受益於增量排序,這是 PostgreSQL 13 中引入的一項功能。

儲存程序允許在程式碼區塊中進行交易控制,現在可以使用 OUT 參數傳回資料。

PostgreSQL 14 引入了使用 date_bin 函數將時間戳記「分組」或對齊到特定間隔的功能。此版本還新增了符合 SQL 標準的 SEARCHCYCLE 子句,以協助遞迴 通用資料表運算式的排序和迴圈偵測。

安全性增強

PostgreSQL 14 可以方便地使用 pg_read_all_datapg_write_all_data 預定義角色,將唯讀和唯寫權限指派給資料表、檢視表和綱要上的使用者。

此外,此版本現在使符合標準的 SCRAM-SHA-256 密碼管理和驗證系統成為新 PostgreSQL 實例上的預設選項。

關於 PostgreSQL

PostgreSQL 是世界上最先進的開源資料庫,擁有由數千名使用者、貢獻者、公司和組織組成的全球社群。PostgreSQL 基於加州大學柏克萊分校超過 30 年的工程經驗,持續以無與倫比的速度發展。PostgreSQL 成熟的功能集不僅與頂級專有資料庫系統相匹配,而且在進階資料庫功能、可擴展性、安全性和穩定性方面超越了它們。

連結