PostgreSQL 16 三則 “新功能更新”

帶你聊技術發表於2023-02-07


POSTGRESQL 15 剛剛推出不久,而POSTGRESQL 16 的新功能也已經在路上了,下面說說PG 16 已經確認有的3個新功能。

1 PG_DUMP 壓縮

相對於其他資料庫在非物理備份中,POSTGRESQL 的優勢會較大,因為POSTGRESQL 的PG_DUMP 支援兩種方式的備份,1 邏輯備份,也就是我們習慣的將資料庫的資料匯出成可以執行的語句   2  binary backup 這個備份方式中可以將備份的資料變換成二進位制的模式,並可以透過PG_RESTORE 的方式進行資料的恢復。

這裡PG_DUMP 在PG16之前的版本中提供的是針對與二進位制的資料備份中  -Fc 方式或 --format = customer的兩種方式,同時還在備份中透過 -Z 可以針對備份檔案來指定壓縮的級別,0 為不壓縮,9為壓縮的最高階別,透過GIZP的方式。Georgios Kokolatos 在其中提供了一個Patch, 這是PG16的新特色,因為你可以指定壓縮的方式和技術,如 zstd , lz4,等新的壓縮方式來自持PG_DUMP。

這裡需要注意的是,在PG安裝中,編譯需要將這些模組編譯進PG的資料庫中否則是無法進行支援的。在透過壓縮等級來進行資料壓縮中,在一些常規的資料在使用壓縮後,同樣的資料備份,在選擇0 不壓縮和選擇9 壓縮後之間相差可以達到30倍。

2   VACUUM 和 ANALYZE 的許可權問題

一般來說PG的資料庫在資料量較大的情況下,並且在資料進行大量變動的情況下,是需要注意一個資料庫表可以進行vacuum 或者 analyze的操作必須是superuser 或者 此表的owner.  所以在許可權方面,這兩個操作並不一定非要是SUPERUSER 或 OWNER, 如果我們有一個專門對一些表進行定期VACUUM的需要的普通工作人員,則這樣的就無法滿足客戶的需要。

Andrew Dunstan 提出了這個問題,讓POSTGRESQL 在資料庫的操作中有更多的靈活性。

舉例,你可以在PG 16中透過

create  role simon;

grant vaccum on table  XXX to  simon;

來對資料表進行一個VACUUM 的許可權賦予,讓這個simon雖然沒有對這個表其他的許可權,但他可以對這個表進行 vacuum 的操作。

同時針對PG16 也針對這個VACUUM的角色進行了設定  pg_vacuum_all_tables , grant pg_vacuum_all_tables to simon; 此時simon就可以針對這個這個許可權,對資料庫下所有的表進行vacuum的操作權利。

最後的一則資訊,在POSTGRESQL 16 可以透過新的支援整數常量的非十進位制表示法!PostgreSQL已經對字串常量提供了強大的支援,E'\t', E'\011', E'\u0009'和U&'\0009'都表示相同的東西(一個“水平製表符”字元)。

這個功能是透過 John Naylor, Zhihong Yu, David Rowley , Dean Rasheed 等進行 patch的提供的,透過這個patch ,postgresql 將支援 8 , 16 以及二進位制資料集合。

產生這樣的想法的主要的來源還是資料的表達與理解的問題,一些非10進位制的資料表達,可以表達更大的數字,並且對於一些程式設計師來說這樣的表達方式更簡便。

PostgreSQL 16  三則  “新功能更新”

PostgreSQL 16  三則  “新功能更新”

PostgreSQL 16  三則  “新功能更新”

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

相關文章