PostgreSQL 12 發布

經過一年的發展 發表 PostgreSQL 12 DBMS 的新穩定分支。新分支的更新 會出來的 為期五年,直至 2024 年 XNUMX 月。

主要的 創新:

  • 添加了對“產生的列",其值是根據覆蓋同一個表中其他列的值的表達式計算的(類似於視圖,但針對單一列)。 產生的列可以有兩種類型 - 儲存列和虛擬列。 在第一種情況下,該值是在新增或變更資料時計算的,在第二種情況下,該值是在每次讀取時根據其他列的當前狀態計算的。 目前,PostgreSQL僅支援儲存生成列;
  • 新增了使用以下命令從 JSON 文件查詢資料的功能 路徑表達式路徑 並在 SQL/JSON 標準中定義。 利用現有的索引機制,提高對JSONB格式儲存的文件處理此類表達式的效率;
  • 預設啟用的是使用基於 LLVM 開發的 JIT(Just-in-Time)編譯器來加速 SQL 查詢處理期間某些表達式的執行。 例如,JIT用於加速WHERE區塊內的表達式、目標列表、聚合表達式以及一些內部操作的執行;
  • 索引效能已顯著提高。 B 樹索引經過最佳化,可在索引頻繁變更的環境中運作 - TPC-C 測試顯示效能整體提高,磁碟空間消耗平均減少 40%。 減少了為 GiST、GIN 和 SP-GiST 索引類型產生預寫日誌 (WAL) 時的開銷。 對於 GiST,新增了建立包含其他欄位的包裝索引(透過 INCLUDE 表達式)的功能。 運作中 創建統計 提供對最常見值(MCV)統計資訊的支持,以便在使用不均勻分佈的列時產生更最佳化的查詢計劃;
  • 分區實現針對跨越具有數千個分區的表的查詢進行了最佳化,但僅限於選擇有限的資料子集。 使用 INSERT 和 COPY 操作向分區表添加資料的效能得到了提高,並且還可以透過「ALTER TABLE ATTACH PARTITION」新增新的部分,而不會阻塞查詢執行;
  • 新增了對通用表表達式的自動內聯擴展的支援(公用表表達式、CTE),允許使用透過WITH 語句指定的臨時命名結果集。 內嵌部署可以提高大多數查詢的效能,但目前僅用於非遞歸CTE;
  • 增加了支持 不確定性 「排序規則」區域設定的屬性,它允許您考慮字元的含義來設定排序規則和匹配方法(例如,在對數字值進行排序時,數字前面是否存在減號和點以及不同的類型)考慮拼寫的情況,並且在比較時,不考慮字元的大小寫和重音符號的存在);
  • 新增了對多因素用戶端身份驗證的支持,其中在pg_hba.conf 中,您可以將SSL 憑證身份驗證(clientcert=verify-full) 與其他身份驗證方法(例如scram-sha-256)結合起來進行身份驗證;
  • 新增了對通過身份驗證時通訊通道加密的支持 GSAPI,無論是在客戶端還是在伺服器端;
  • 如果 PostgreSQL 使用 OpenLDAP 構建,則新增了基於「DNS SRV」記錄確定 LDAP 伺服器的支援;
  • 新增操作“同時重新索引» 重建索引而不阻塞對索引的寫入操作;
  • 添加命令 pg_checksums,它允許您啟用或停用檢查現有資料庫的資料頁校驗和(以前僅在資料庫初始化期間支援此操作);
  • 為 CREATE INDEX、REINDEX、CLUSTER、VACUUM FULL 和 pg_checksums 操作提供進度指示器的輸出;
  • 新增了命令“建立存取方法» 連接針對各種特定任務最佳化的新表格儲存方法的處理程序。 目前唯一內建的表格存取方法是「堆」;
  • recovery.conf 設定檔已與 postgresql.conf 合併。 作為故障後過渡到恢復狀態的指標,現在 必須 使用recovery.signal和standby.signal檔案。

來源: opennet.ru

添加評論