PostgreSQL 15 發布

經過一年的開發,PostgreSQL 15 DBMS 的新穩定分支已經發布,新分支的更新將在五年內發布,直至 2027 年 XNUMX 月。

主要創新:

  • 增加了對 SQL 命令“MERGE”的支持,該命令類似於表達式“INSERT ... ON CONFLICT”。 MERGE 可讓您建立將 INSERT、UPDATE 和 DELETE 運算組合到單一運算式中的條件 SQL 語句。 例如,使用 MERGE,您可以透過插入缺失記錄並更新現有記錄來合併兩個表。 合併到 customer_account ca 使用最近的交易 t ON t.customer_id = ca.customer_id 匹配時更新 SET 餘額 = 餘額 + transaction_value 不匹配時插入 (customer_id, 餘額) VALUES (t.customer_id, t.transaction_value);
  • 記憶體和磁碟上的資料排序演算法得到了顯著改進。 根據資料類型,測試顯示排序速度從 25% 提高到 400%。
  • 使用 row_number()、rank()、dense_rank() 和 count() 的視窗函數已加速。
  • 已經實現了使用表達式“SELECT DISTINCT”並行執行查詢的可能性。
  • 連接外部表外部資料包裝器(postgres_fdw)的機制除了先前新增的非同步處理外部伺服器請求的功能之外,還實現了對非同步提交的支援。
  • 新增使用LZ4和Zstandard(zstd)演算法壓縮WAL交易日誌的能力,在某些工作負載下,可以同時提高效能並節省磁碟空間。 為了減少故障後的復原時間,新增了 WAL 日誌中出現的頁面的主動檢索的支援。
  • pg_basebackup 公用程式新增了使用 gzip、LZ4 或 zstd 方法對備份檔案進行伺服器端壓縮的支援。 可以使用您自己的模組進行歸檔,無需執行 shell 命令。
  • 新增了一系列用於使用正規表示式處理字串的新函數:regexp_count()、regexp_instr()、regexp_like() 和 regexp_substr()。
  • range_agg() 函數中新增了聚合​​多範圍類型(「multirange」)的功能。
  • 新增了 security_invoker 模式,該模式可讓您建立作為呼叫使用者而不是視圖建立者執行的視圖。
  • 對於邏輯複製,已經實現了對過濾行和指定列列表的支持,允許發送方從表中選擇資料子集進行複製。 此外,新版本還簡化了衝突管理,例如,現在可以跳過衝突事務並在偵測到錯誤時自動停用訂閱。 邏輯複製允許使用兩階段提交(2PC)。
  • 新增了新的日誌格式 - jsonlog,它使用 JSON 格式以結構化形式保存資訊。
  • 管理員可以將個人權限委託給使用者以變更某些 PostgreSQL 伺服器設定參數。
  • psql 實用程式新增了對使用「\dconfig」命令搜尋有關設定 (pg_settings) 的資訊的支援。
  • 確保使用共享記憶體來累積有關伺服器操作的統計信息,這使得可以擺脫收集統計資訊和定期將狀態重置到磁碟的單獨過程。
  • 已提供使用預設 ICU 區域設定「ICU Collat​​ion」的功能;以前,只有 libc 區域設定可以用作預設區域設定。
  • 已經提出了一個內建擴充 pg_walinspect,它允許您使用 SQL 查詢檢查帶有 WAL 日誌的檔案內容。
  • 對於公共模式,除資料庫擁有者之外的所有使用者執行 CREATE 命令的權限都已被撤銷。
  • PL/Python 中已刪除對 Python 2 的支援。過時的獨佔備份模式已刪除。

新增:從 19:00 到 20:00(MSK),將有一個網路研討會,與 Pavel Luzanov(Postgres Professional)討論新版本中的變更。 對於那些無法參加廣播的人,Pavel 在 PGConf.Russia 上的 15 月報告“PostgreSQL XNUMX:MERGE 及更多”的錄製現已開放。

來源: opennet.ru

添加評論