PostgreSQL 12 正式釋出:全面的效能提升

IT職業頻道發表於2019-10-11

PostgreSQL 12 正式釋出:全面的效能提升

PostgreSQL 12 已經發布,該版本在各方面都得到了加強,包括顯著地提升查詢效能,特別是對大資料集,總的空間利用率方面。
這個版本為應用程式開發人員提供了更多的功能,比如對 SQL/JSON 路徑表示式的支援,最佳化公共表示式(WITH查詢)的執行,以及對生成列的支援等。 PostgreSQL 除了持續對 PostgreSQL 系統的可擴充套件性、穩健性進行開發外,還更多地在本地化、授權控制以及更加容易的管理進行增強。這個版本也引入了 可插撥的表存取介面,來允許開發者在表的建立和使用時使用不同的存取方式。具體如下:

全面的效能提升

PostgreSQL 12版本在效能和易維護性方面有了顯著的增強,尤其是對索引和分割槽子系統。
PostgreSQL 12 對標準索引型別B樹索引進行了最佳化,以使其可以可以更好地處理索引更新頻率較高型別的負載的的總體效能,使用最常使用的TPC-C 效能測試,PostgreSQL 12 平均可以提升約 40% 的空間利用率和查詢效能。
對分割槽表的查詢也得到了較大改進,特別是對那些有數千個分割槽的表,而結果只需從幾個有限的分割槽提取資料的查詢。PostgreSQL 12 對透過 INSERT 和COPY指令將資料加入分割槽表的操作,也有加強,包括現在可以在不阻塞查詢的情況下增加新的分割槽。
另外,PostgreSQL 12 對索引的最佳化也提升了總體的效能,包括生成 GiST、GIN 或 SP-GiST 索引的 WAL 日誌的負載顯著減少,在 GiST 型別索引上創 建INCLUDE選項的包含索引,SP-GiST 索引現在支援<->距離操作的 K-NN(即相鄰最近)查詢,以及CREATE STATISTICS指令現在支援最常用值 MCV 的統計來幫助那些欄位值非均勻分佈的查詢生成更最佳化的查詢計劃。
透過使用 LLVM,從 PostgreSQL 11 版引入的 JIT 即時編譯,在 PostgreSQL 12 中預設已是啟用狀態,JIT 即時編譯對帶有 WHERE 條件、物件列表、 聚合以及一些內部操作都會提供效能上的幫助。當然,使用者在安裝或是編譯時需要包含 LLVM 模組。

對 SQL 標準一致性和功能的增強

PostgreSQL 一直以來以其對 SQL 標準符合性而著稱,這也是其名稱由 POSTGRES 改為 PostgreSQL 的一個小原因。PostgreSQL 12 又增加了幾個新特性來持續實現對 SQL 標準的符合性的強化。

PostgreSQL 12 加入了對 JSON 文件進行查詢時使用 JSON 路徑表示式的功能,這也是 SQL/JSON 中定義的規範。對使用 JSONB 格式儲存的文件,這些查 詢可以利用已有的索引機制來高效地提取資料。
公共表示式,也稱之為 WITH 查詢,在 PostgreSQL 12 中可以實現非物化操作處理,這對很多現在已有的查詢有很大幫助。目前在這個版本中,WITH 查詢的前提條件是非遞迴查詢並且僅可被外層查詢引用一次。
PostgreSQL 12 也引入了“生成列”功能,這也是 SQL 標準中的要求,這些欄位值是透過同一表中其它列計算而來的。在這一版本中,PostgreSQL 支援“儲存生成列值”的功能,即將這些計算出來的資料儲存在磁碟上。

本地化

PostgreSQL 12 擴充了對 ICU 排序規則的支援,允許使用者自行定義非標準的排序方式,比如允許大小寫不敏感或是按口音不敏感的比較規則。

授權控制

PostgreSQL 透過再次擴充套件了一些的安全方面的功能來強化了它本來就很穩健的許可權控制。這個版本中透過 GSSAPI 介面支援客戶端和服務端的雙向加密, 如果在編譯時加入 OpenLDAP 模組,PostgreSQL 也支援搜尋 LDAP 伺服器的功能。

另外,PostgreSQL 12 現在支援多約束的授權方式。如在使用scram-sha-256的授權方式,PostgreSQL 伺服器現在可以強制一個客戶端在提供使用者名稱、使用clientcert=verify-full選項,再必須提供有效的 SSL 證書的方式來強化安全授權。

系統管理

PostgreSQL 12 的REINDEX CONCURRENTLY指令可以在不影響新的索引寫入的前提下讓使用者執行重那建索引操作,這有助於使用者實現不停機對較大索引的重建。
還有,PostgreSQL 12 透過使用pg_checksums指令對停機的 PostgreSQL 來開啟或關閉頁校驗功能,該功能有助於檢查已寫入磁碟的資料一致性, 而以前版本中該操作僅允許在 initdb的階段來執行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545820/viewspace-2659510/,如需轉載,請註明出處,否則將追究法律責任。

相關文章