溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PostgreSQL 10的新亮點(diǎn)有哪些

發(fā)布時(shí)間:2021-11-26 09:21:31 來(lái)源:億速云 閱讀:138 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹了PostgreSQL 10的新亮點(diǎn)有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前段時(shí)間新的重大版本的 PostgreSQL 10 發(fā)布了!  強(qiáng)烈建議閱讀公告、發(fā)布說(shuō)明和“新功能”概述可以在這里、這里和這里。像往常一樣,已經(jīng)有相當(dāng)多的博客覆蓋了所有新的東西,但我猜每個(gè)人都有自己認(rèn)為重要的角度,所以與  9.6 版一樣我再次在這里列出我印象中最有趣/相關(guān)的功能。

與往常一樣,升級(jí)或初始化一個(gè)新集群的用戶將獲得更好的性能(例如,更好的并行索引掃描、合并 join 和不相關(guān)的子查詢,更快的聚合、遠(yuǎn)程服務(wù)器上更加智能的  join 和聚合),這些都開箱即用,但本文中我想講一些不能開箱即用,實(shí)際上你需要采取一些步驟才能從中獲益的內(nèi)容。下面重點(diǎn)展示的功能是從 DBA  的角度來(lái)匯編的,很快也有一篇文章從開發(fā)者的角度講述更改。

升級(jí)注意事項(xiàng)

首先有些從現(xiàn)有設(shè)置升級(jí)的提示 - 有一些小的事情會(huì)導(dǎo)致從 9.6  或更舊的版本遷移時(shí)引起問(wèn)題,所以在真正的升級(jí)之前,一定要在單獨(dú)的副本上測(cè)試升級(jí),并遍歷發(fā)行說(shuō)明中所有可能的問(wèn)題。最值得注意的缺陷是:

  • 所有包含 “xlog” 的函數(shù)都被重命名為使用 “wal” 而不是 “xlog”。

后一個(gè)命名可能與正常的服務(wù)器日志混淆,因此這是一個(gè)“以防萬(wàn)一”的更改。如果使用任何第三方備份/復(fù)制/HA 工具,請(qǐng)檢查它們是否為***版本。

  • 存放服務(wù)器日志(錯(cuò)誤消息/警告等)的 pg_log 文件夾已重命名為 “l(fā)og”。

確保驗(yàn)證你的日志解析或 grep 腳本(如果有)可以工作。

  • 默認(rèn)情況下,查詢將最多使用 2 個(gè)后臺(tái)進(jìn)程。

如果在 CPU 數(shù)量較少的機(jī)器上在 postgresql.conf 設(shè)置中使用默認(rèn)值 10,則可能會(huì)看到資源使用率峰值,因?yàn)槟J(rèn)情況下并行處理已啟用 -  這是一件好事,因?yàn)樗鼞?yīng)該意味著更快的查詢。如果需要舊的行為,請(qǐng)將 max_parallel_workers_per_gather 設(shè)置為 0。

  • 默認(rèn)情況下,本地主機(jī)的復(fù)制連接已啟用。

為了簡(jiǎn)化測(cè)試等工作,本地主機(jī)和本地 Unix 套接字復(fù)制連接現(xiàn)在在 pg_hba.conf 中以“信任trust”模式啟用(無(wú)密碼)!因此,如果其他非  DBA 用戶也可以訪問(wèn)真實(shí)的生產(chǎn)計(jì)算機(jī),請(qǐng)確保更改配置。

從 DBA 的角度來(lái)看我的***

  • 邏輯復(fù)制

這個(gè)期待已久的功能在你只想要復(fù)制一張單獨(dú)的表、部分表或者所有表時(shí)只需要簡(jiǎn)單的設(shè)置而性能損失最小,這也意味著之后主要版本可以零停機(jī)升級(jí)!歷史上(需要  Postgres 9.4+),這可以通過(guò)使用第三方擴(kuò)展或緩慢的基于觸發(fā)器的解決方案來(lái)實(shí)現(xiàn)。對(duì)我而言這是 10 ***的功能。

  • 聲明分區(qū)

以前管理分區(qū)的方法通過(guò)繼承并創(chuàng)建觸發(fā)器來(lái)把插入操作重新路由到正確的表中,這一點(diǎn)很煩人,更不用說(shuō)性能的影響了。目前支持的是 “range” 和 “l(fā)ist”  分區(qū)方案。如果有人在某些數(shù)據(jù)庫(kù)引擎中缺少 “哈?!?分區(qū),則可以使用帶表達(dá)式的 “l(fā)ist” 分區(qū)來(lái)實(shí)現(xiàn)相同的功能。

  • 可用的哈希索引

哈希索引現(xiàn)在是 WAL 記錄的,因此是崩潰安全的,并獲得了一些性能改進(jìn),對(duì)于簡(jiǎn)單的搜索,它們比在更大的數(shù)據(jù)上的標(biāo)準(zhǔn) B  樹索引快。也支持更大的索引大小。

  • 跨列優(yōu)化器統(tǒng)計(jì)

這樣的統(tǒng)計(jì)數(shù)據(jù)需要在一組表的列上手動(dòng)創(chuàng)建,以指出這些值實(shí)際上是以某種方式相互依賴的。這將能夠應(yīng)對(duì)計(jì)劃器認(rèn)為返回的數(shù)據(jù)很少(概率的乘積通常會(huì)產(chǎn)生非常小的數(shù)字)從而導(dǎo)致在大量數(shù)據(jù)下性能不好的的慢查詢問(wèn)題(例如選擇“嵌套循環(huán)”  join)。

  • 副本上的并行快照

現(xiàn)在可以在 pg_dump 中使用多個(gè)進(jìn)程(-jobs 標(biāo)志)來(lái)極大地加快備用服務(wù)器上的備份。

  • 更好地調(diào)整并行處理 worker 的行為

參考 max_parallel_workers 和  min_parallel_table_scan_size/min_parallel_index_scan_size  參數(shù)。我建議增加一點(diǎn)后兩者的默認(rèn)值(8MB、512KB)。

  • 新的內(nèi)置監(jiān)控角色,便于工具使用

新的角色 pg_monitor、pg_read_all_settings、pg_read_all_stats 和 pg_stat_scan_tables  能更容易進(jìn)行各種監(jiān)控任務(wù) - 以前必須使用超級(jí)用戶帳戶或一些 SECURITY DEFINER 包裝函數(shù)。

  • 用于更安全的副本生成的臨時(shí) (每個(gè)會(huì)話) 復(fù)制槽

  • 用于檢查 B 樹索引的有效性的一個(gè)新的 Contrib 擴(kuò)展

這兩個(gè)智能檢查發(fā)現(xiàn)結(jié)構(gòu)不一致和頁(yè)面級(jí)校驗(yàn)未覆蓋的內(nèi)容。希望不久的將來(lái)能更加深入。

  • Psql 查詢工具現(xiàn)在支持基本分支(if/elif/else)

例如下面的將啟用具有特定版本分支(對(duì) pg_stat* 視圖等有不同列名)的單個(gè)維護(hù)/監(jiān)視腳本,而不是許多版本特定的腳本。

SELECT :VERSION_NAME = '10.0' AS is_v10 \gset  \if :is_v10 SELECT 'yippee' AS msg; \else SELECT 'time to upgrade!' AS msg; \endif

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PostgreSQL 10的新亮點(diǎn)有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI