PostgreSQL,也稱為Postgres,是一個開源的、物件導向的關聯式資料庫管理系統。
經過 11 個月的開發,PostgreSQL 16 新版本正式發布。這個新的穩定版資料庫管理系統將獲得五年的更新支持,直到 2028 年 11 月。同時,這也標誌著 PostgreSQL 11.x 分支的終結,這是目前仍在支援的最老版本,將於 11 月 9 日停止維護。
對於那些還不熟悉 PostgreSQL 的人來說,它也被稱為 Postgres,是一個免費的開源關係型資料庫管理系統(RDBMS) ,旨在提供一個基於可擴展性和符合技術標準的資料庫。
PostgreSQL 16的主要新功能
PostgreSQL 16 新版本增強了邏輯複製的存取控制工具。例如,新增了一個預定義函數“pg_create_subscription”,允許使用者獲得建立新訂閱的權限。
客戶端已使用標準 libpq 庫新增了負載平衡支援。負載平衡允許客戶端連接到不同的主機,連接順序可以指定或隨機。如果目標主機無法使用,則會嘗試連線到其他伺服器。連線建立後,會話中的請求將傳送到選定的伺服器。
此外,還進行了最佳化,並改進了查詢規劃器的工作,因為它提供了表格連接操作「FULLY」和「RIGHT JOIN」的並行化。
PostgreSQL 16 還擴展了對「Collate」區域設定的支持,可讓您根據字元含義設定排序規則和比較方法。預設情況下,它現在使用 ICU 區域設定而不是 libc 區域設定進行編譯。
邏輯複製性能得到了提升,因為實現了並發運行處理器的使用,並且實現了對沒有主鍵的表使用 B 樹索引,從而無需在查找記錄時進行順序掃描,並且一些二進制格式表的初始同步也得到了加速。
邏輯複製機制的另一項改進是,現在允許將添加、刪除或更新記錄時對資料庫所做的更改傳輸到另一台伺服器;它還擴展了從備份伺服器複製更改的功能。
PostgreSQL 16也新增了對錶雙向邏輯複製的支持,允許在不同伺服器上的兩個表之間同步變更。新增的複製功能支援建立多伺服器設定(雙活模式),在這種模式下,INSERT、UPDATE 和 DELETE 操作可以同時執行。
其他顯著變化包括:
- 優化了“RIGHT JOIN”和“OUTER JOIN”操作的使用,以查找不在連接表中的行(“反連接”)。
- 提高了將聚合函數與 DISTINCT 或 ORDER BY 子句結合使用的查詢的最佳化計劃的效率。
- 增量排序用於加速 SELECT DISTINCT 查詢。
VACUUM 操作策略已改進,以減少需要鎖定整個表的情況。 - 在 x86 和 ARM 架構上,實作向量處理器指令 (SIMD) 來加速處理 ASCII 字串、JSON 資料操作以及執行陣列查找和子事務。
- “auto_explain”模組現在支援記錄傳遞給參數化查詢的值。
- 提高了 pg_stat_statements 和 pg_stat_activity 視圖中使用的請求追蹤演算法的準確性。
- 監控 DBMS 效能的功能已擴充。 新增了服務視圖 » pg_stat_io »,其中包含反映各種後端(後台工作程序、autovacuum 等)和物件對 I/O 系統的負載的統計資訊。
- 服務視圖 » pg_stat_all_tables » 新增了一個新字段,其中包含有關表或索引上次掃描時間的資訊。
最後,如果您有興趣了解更多信息,可以點擊以下鏈接查看詳情。