PostgreSQL 全球開發團隊宣布 PostgreSQL 11 的第一個 Beta 版本現已可供下載。此版本包含 PostgreSQL 11 最終版本中的所有功能預覽,但發布的某些細節可能會在此之前發生變化。
本著開源 PostgreSQL 社群的精神,我們強烈建議您在您的資料庫系統中測試 PostgreSQL 11 的新功能,以幫助我們消除可能存在的任何錯誤或其他問題。雖然我們不建議您在生產環境中運行 PostgreSQL 11 Beta 1,但我們鼓勵您尋找方法針對此 Beta 版本運行您典型的應用程式工作負載。
PostgreSQL 11 的主要功能著重於效能、處理更大的資料集和易用性。
PostgreSQL 11 包含多個功能,可改進在分區中使用資料,包括
UPDATE
語句現在會將受影響的列移動到適當的分區SELECT
查詢效能PRIMARY KEY
、FOREIGN KEY
、索引和觸發器以及更多。
PostgreSQL 11 還引入了一項功能,允許查詢在最終聚合之前將分組和聚合分配到分區表。預設情況下禁用此功能,若要啟用,您需要在設定檔中或在會話或事務期間設定 enable_partitionwise_aggregate = on
。
已新增到 PostgreSQL 11 的多個功能利用了並行查詢基礎架構並提供了顯著的效能增強,包括
CREATE INDEX
CREATE TABLE .. AS
、CREATE MATERIALIZED VIEW
和某些具有 UNION
的查詢PostgreSQL 11 引入了 SQL 預存程序,允許使用者在程序中使用嵌入式事務(即 BEGIN
、COMMIT
/ROLLBACK
)。可以使用 CREATE PROCEDURE
命令建立程序,並使用 CALL
命令執行程序。
PostgreSQL 11 引入了對 即時 (JIT) 編譯 的支援,以優化程式碼的執行和其他在執行階段的操作。透過使用 LLVM 專案的元件,在 PostgreSQL 中引入 JIT 支援可加速利用表達式(例如 WHERE
子句)、目標清單、聚合、投影以及一些內部操作的查詢。
PostgreSQL 中的 JIT 框架旨在允許將來新增用於優化的工作。如果您要從原始碼建置 PostgreSQL 11,則可以使用 --with-llvm
旗標啟用 JIT 編譯。
從 PostgreSQL 11 開始,視窗函式現在支援 SQL:2011 標準中顯示的所有選項,包括 RANGE _distance_ PRECEDING/FOLLOWING
、GROUPS
模式和框架排除選項。
PostgreSQL 的先前版本引入了 SCRAM 驗證,以使用公認的標準協定改進密碼的儲存和傳輸。PostgreSQL 11 引入了 SCRAM 驗證的通道繫結,透過防止中間人攻擊來增加使用 SCRAM 的安全性。
PostgreSQL 全球開發團隊認識到,雖然 PostgreSQL 本身包含一套強大的功能,但並非所有功能都易於使用,並且可能需要在開發和生產環境中進行變通。
在 PostgreSQL 11 之前,其中一項功能是使用 ALTER TABLE .. ADD COLUMN
命令,其中新建立的欄具有非 NULL 的 DEFAULT
值。在 PostgreSQL 11 之前,執行上述語句時,PostgreSQL 會重寫整個表,這在作用中系統中的較大表上可能會導致一系列問題。PostgreSQL 11 在大多數情況下消除了重寫表的需求,因此運行 ALTER TABLE .. ADD COLUMN .. DEFAULT ..
將會非常快速地執行。
屬於此類別的另一個功能是無法從 PostgreSQL 命令列 (psql
) 直觀地退出。有許多記錄的投訴指出使用者嘗試使用 quit
和 exit
命令退出,但最終發現這樣做的命令是 \q
。
我們已經聽到了您的挫折感,現在新增了使用關鍵字 quit
和 exit
退出命令列的功能,並希望退出 PostgreSQL 會話現在與使用 PostgreSQL 一樣令人愉快。
PostgreSQL 11 中新增了許多其他新功能和改進,其中一些對於特定使用者而言可能與上述內容同等重要或更重要。請參閱發行說明以取得新功能和已變更功能的完整清單。
每個 PostgreSQL 版本的穩定性在很大程度上取決於您(社群)使用您的工作負載和測試工具測試即將推出的版本,以便在 PostgreSQL 11 發布之前發現錯誤和回歸。由於這是一個 Beta 版本,因此資料庫行為、功能詳細資訊和 API 仍可能發生細微變更。您的意見反應和測試將有助於確定新功能的最終調整,因此請在不久的將來進行測試。使用者測試的品質有助於確定我們何時可以進行最終發布。
未解決問題的清單公開於 PostgreSQL Wiki 中。您可以使用 PostgreSQL 網站上的此表單回報錯誤
https://postgres.tw/account/submitbug/
這是 11 版的第一個 Beta 版本。PostgreSQL 專案將根據測試需要發布其他 Beta 版本,然後是一個或多個候選發布版本,直到 2018 年底的最終版本。如需更多資訊,請參閱Beta 測試頁面。