PostgreSQL 16 三則 “新功能更新”
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進位制的資料表達,可以表達更大的數字,並且對於一些程式設計師來說這樣的表達方式更簡便。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024922/viewspace-2934187/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JDK 16:Java 16的新功能 - InfoWorldJDKJava
- 好訊息!PostgreSQL 13增加新功能!SQL
- [Erlang0016]Erlang三則之HIPESASLMonitor
- Java 16 新功能介紹Java
- Flutter 熱更新功能實現Flutter
- PostgreSQL分割槽表更新思路SQL
- PostgreSQL自動更新時間戳SQL時間戳
- 多表關聯更新(mysql,oracle,postgreSQL)MySqlOracle
- 199IT小程式近日更新功能
- 在執行時刻更新功能模組 (轉)
- react + electron 應用線上更新功能記錄React
- .Net Core3 新特性/新功能 16條
- Go 1.16 新功能特性不完全前瞻Go
- Oracle vs PostgreSQL Develop(16) - Prepared StatementOracleSQLdev
- openeuler原始碼安裝Postgresql 16原始碼SQL
- 蘋果手錶都更新了什麼? Beta3更新功能釋出蘋果
- 簡單實現安卓app自動更新功能安卓APP
- PostgreSQL官方並行更新時間表SQL並行
- 微軟預告Microsoft 365三項新功能微軟ROS
- PostgreSQL DBA(169) - Develop(Distinct vs Group by)SQLdev
- PostgreSQL DBA(164) - pgAdmin(Drop column)SQL
- PostgreSQL DBA(160) - pgAdmin(prepare transaction)SQL
- PostgreSQL DBA(163) - Extension(pg_cron)SQL
- PostgreSQL DBA(162) - Extension(pg_catcheck)SQL
- postgresql 的三類日誌SQL
- PostgreSQL的監控三(zabbix)SQL
- 合作商平臺-專案的全量更新功能
- 【Android】使用Bugly快速接入Tinker熱更新功能Android
- 今日起,Win7不再有任何新功能更新Win7
- PostgreSQL 插入時間與更新時間(qbit)SQL
- Kotlin 1.1.6版本更新,新功能搶先預覽Kotlin
- Android 軟體自動更新功能實現的方法Android
- 教你Mysql如何實現不存在則插入,存在則更新MySql
- LeetCode三則LeetCode
- #軟體更新#Visual Studio更新到16.3.8
- 自定義驗證規則物件( Laravel 5.5 新功能早知道)物件Laravel
- PostgreSQL VACUUM 之深入淺出 (三)SQL
- 亞馬遜雲科技推出Amazon Connect三項新功能亞馬遜