PolarDB PostgreSQL版相容PostgreSQL 18的版本正式發布上線。PostgreSQL 18版本通過效能提升、營運簡化和功能擴充,進一步提升資料庫使用的體驗。
版本介紹
在社區PostgreSQL 18基礎上,PolarDB還支援一些專屬的功能,例如時空引擎GanosBase,全域計畫快取,GBK/GB18030 字元集等。在PolarDB PostgreSQL版 18的第一個發布版本中,即支援以下外掛程式:hypopg,ip4r,mysql_fdw,pase,pgaudit,pg_bigm,pg_cron,pg_filedump,pg_hint_plan,pgjwt,pg_net,pg_similarity,pgsodium,pg_stat_kcache,pgtap,pgvector,pldebugger,postgres-decoderbufs,prefix,roaringbitmap,sequential_uuids,ganos,varbitx,vault,wal2json,zhparser。
同時,PolarDB進行了深入的效能最佳化:通過PGO、BOLT、LTO等系統級最佳化手段,結合批量檔案讀寫與擴充、批量刷髒等I/O最佳化,並進行了深度的參數調優。
相關文檔:PostgreSQL 18社區發布公告。
發布時間
新加坡時間2026年01月10日
費用說明
支援訂用帳戶和隨用隨付兩種計費模式,提供靈活的計費選擇。計費詳情請參見產品計費。
關鍵提升
系統級效能提升
非同步I/O:引入非同步I/O子系統,允許後端並行發送多個讀請求,顯著提高了順序掃描、位元影像堆掃描及清理(VACUUM)等操作的效率。
查詢最佳化:改進了查詢最佳化工具,能自動移除不必要的表自串連,並將部分
IN (VALUES ...)轉換為ANY數組以利用更優的統計資訊。索引效能:B-tree索引現已支援跳躍掃描(Skip Scan),GIN 索引支援並行建立,進一步提升了查詢和索引維護效率。
VACUUM最佳化:允許
VACUUM凍結部分全可見頁面,減少了後續全表凍結的開銷。新增ONLY選項,可讓VACUUM和ANALYZE僅處理分區父表。
開發人員體驗提升
虛擬產生列:產生列(Generated Columns)預設為虛擬列,在讀取時動態計算其值,而非寫入時儲存,節省了儲存空間。
DML功能增強:
RETURNING子句現支援OLD和NEW關鍵字,允許INSERT/UPDATE/DELETE/MERGE操作返回變更前後的資料。
高可用與邏輯複製增強
功能擴充:邏輯複製現已支援產生列。
CREATE SUBSCRIPTION的streaming選項預設值修改為parallel。營運簡化:新增邏輯複製衝突日誌,協助您快速識別和解決資料同步中的問題。
安全性與管理增強
認證方式:棄用MD5密碼認證,並引入對OAuth認證方法的支援,提供更現代、更安全的身分識別驗證選項。
許可權管理:新增
pg_get_acl()和has_largeobject_privilege()等函數,並允許為大對象(Large Objects)定義預設許可權,使許可權管理更加精細化。
升級指導
建議您升級到PolarDB PostgreSQL版 18版本。升級到PostgreSQL 18版本意味著您可以與PostgreSQL社區保持同步,獲得更多的資源和支援,協助您解決問題並學習資料庫的最佳實務。
在PolarDB PostgreSQL版 17版本升級到PolarDB PostgreSQL版 18版本的過程中,大部分的資料類型、內建函數、表列和對象無明顯變化,大多數為細節改進。通過邏輯複製等方式(推薦使用DTS工具進行PolarDB PostgreSQL版間的遷移)可以實現接近100%的相容性,具體的變化細節如下所示。
此處僅為PolarDB PostgreSQL版 18版本與PolarDB PostgreSQL版 17版本區別。其他PolarDB PostgreSQL版版本升級到PolarDB PostgreSQL版 17中的區別,請參見PostgreSQL 17與PostgreSQL 16區別、PostgreSQL 16與PostgreSQL 15區別和PostgreSQL 15與PostgreSQL 14區別。
類型與行為
initdb現預設啟用資料校正和。時區縮寫處理將優先使用當前會話的設定。
設定MD5密碼時,
CREATE ROLE和ALTER ROLE會發出棄用警告。全文本搜尋的設定檔和字典讀取將使用叢集的預設定序提供者。
系統檢視表
移除了
pg_backend_memory_contexts.parent列。pg_backend_memory_contexts.level和pg_log_backend_memory_contexts()的索引基準從0修改為1。pg_stat_all_tables及其相關視圖新增了報告VACUUM和ANALYZE操作耗時的統計資訊。移除了
pg_stat_wal視圖中的wal_write、wal_sync、wal_write_time和wal_sync_time列。
函數與運算式
新增
casefold()函數,用於不區分大小寫匹配。MIN()/MAX()彙總函式現支援數組和複合類型。EXTRACT()函數新增WEEK選項。新增UUID v7產生函數
uuidv7()。新增
crc32()和crc32c()CRC校正函數。新增
array_sort()和array_reverse()數組處理函數。
許可權
新增
pg_get_acl()函數,用於檢索存取控制詳情。新增
has_largeobject_privilege()函數,用於檢查大對象許可權。ALTER DEFAULT PRIVILEGES現支援為大對象定義預設許可權。新增預定義角色
pg_signal_autovacuum_worker。
其他
VACUUM和ANALYZE預設會處理父表的繼承子表。COPY FROM在讀取CSV檔案時,不再將.視作檔案結束標記。禁止建立未記錄日誌(Unlogged)的分區表。
AFTER觸發器將以觸發事件排隊時活動的角色身份執行。移除了
GRANT/REVOKE中已失效的規則(Rule)許可權支援。CREATE SUBSCRIPTION的streaming選項預設值已更改為parallel。