在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PostgreSQL 14新特性:減少索引膨脹

li5236 ? 來源:yzsDBA ? 作者:yzsDBA ? 2022-03-29 15:38 ? 次閱讀

PostgreSQL 14新特性--減少索引膨脹

PG12中索引的存儲(chǔ)更加高效,PG13添加索引條目去重功能進(jìn)一步提升存儲(chǔ)效率。PG14將帶來“自底向上”的索引條目去除功能,旨在減少不必要的頁面分裂、索引膨脹和更新大量索引帶來的碎片。

為什么會(huì)出現(xiàn)索引膨脹

對于B-tree索引,表中每個(gè)行版本都有一個(gè)未死的索引條目(對所有人可見)。執(zhí)行vacuum刪除死記錄時(shí),也會(huì)刪除對應(yīng)的索引條目。和表一樣,同樣會(huì)在索引頁中創(chuàng)建空的空間。這樣的空間可以重用,但是如果沒有新元組插入該頁,這樣的空間會(huì)保持為空。

這種膨脹在某種程度上是不可避免的,也是正常的。但如果膨脹太多,索引效率就會(huì)降低:

1) 對于索引范圍掃描,必須掃描更多的頁

2) RAM中緩存了索引頁,意味著緩沖膨脹,就是浪費(fèi)了RAM

3) 每個(gè)頁中更少的索引條目意味著更少的“fan out”,索引樹的層級將更高

如果頻繁更新相同行,就會(huì)發(fā)生這種情況。VACUUM清理老元組前,表和索引會(huì)維護(hù)相同行的很多版本。如果索引頁填滿,將令人很煩:然后PG會(huì)將索引頁分裂成2個(gè)。這是一個(gè)昂貴的操作,VACUUM執(zhí)行完清理,我們最終會(huì)得到2個(gè)臃腫的頁面而不是一個(gè)。

當(dāng)前用于改善索引膨脹和性能的特性HOT元組

HOT元組的創(chuàng)建可能是PG對抗索引中不必要條目的強(qiáng)大武器。使用此功能UPDATE創(chuàng)建產(chǎn)生的元組不會(huì)被索引條目引用,它還會(huì)引用元組的老版本。通過這種方法,不需要?jiǎng)?chuàng)建新的索引條目,可以避免索引膨脹。

殺死索引條目

當(dāng)索引掃描遇到一個(gè)指向死元組的條目時(shí),標(biāo)記該條目“killed”。后續(xù)索引掃描會(huì)在VACUUM刪除他們之前跳過這些條目。此外,PG可以在索引頁面已滿時(shí)刪除這樣的條目,以避免頁分裂。

PG14如何進(jìn)一步減少索引膨脹

自下而上的索引元組刪除比之前方法更進(jìn)一步:他在索引頁分裂即將發(fā)生前就刪除指向死元組的索引條目。這可以減少索引條目的數(shù)量并避免昂貴的分裂,以及稍后VACUUM清理參數(shù)的膨脹。

在某種程度上,這執(zhí)行了之前VACUUM的部分公眾,在這點(diǎn)上可以避免索引膨脹。

案例

為了演示新功能效果,使用pgbench分別在PG13和14上執(zhí)行操作:

測試表:

image.png

Pgbench名為bench.sql的腳本:

image.png

我運(yùn)行腳本 60000 次(6 個(gè)客戶端 10000 次迭代),如下所示:

pgbench -n -c 6 -f bench.sql -t 10000 test

比較測試結(jié)果

我們使用pgstattuple擴(kuò)展來獲取psql 的索引統(tǒng)計(jì)信息

image.png

這是我們在 v13 中得到的:

image.png

對于 v14,結(jié)果是:

image.png

改進(jìn)最大的時(shí)testtab_unchanged_idx。在13中,索引膨脹嚴(yán)重,而在14中僅有60%的膨脹(這對索引來說還不錯(cuò))。在這里我們看到了新功能的最大影響。UPDATE不掃掃描那個(gè)索引,因此沒有killed的索引條目,“自底向上的刪除”可以刪除足夠的這樣的條目避免分裂。

也可以衡量testtab_pkey。由于UPDATE掃描該索引,死的索引元組被killed,新特性在分裂前刪除這些元組。與13相比,效果不太明顯,因?yàn)?3已經(jīng)很好地避免索引膨脹了。

索引testtab_changed_idx無法從新特性中獲益。因?yàn)檫@進(jìn)解決了UPDATE不修改索引值的情況。如果想知道為什么testtab_unchanged_idx葉子密度比13低:刪除了索引重復(fù)數(shù)據(jù)。

Pg_upgrade后我們可以使用這項(xiàng)功能嗎?

索引的存儲(chǔ)格式?jīng)]有變,所以pg_upgrade PG12及之后版本創(chuàng)建的索引后會(huì)自動(dòng)公眾。但之前版本創(chuàng)建的索引,需要REINDEX后獲益。記住,pg_upgrade僅拷貝索引文件,不會(huì)更改內(nèi)部索引版本。

總結(jié)

PG14繼續(xù)改進(jìn)B-tree索引。這個(gè)特性雖不是革命性的,但有望為許多公眾負(fù)載提供改進(jìn)的性能,尤其是那些有大量更新的工作負(fù)載。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4338

    瀏覽量

    86003
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1369

    瀏覽量

    114826
收藏 人收藏

    評論

    相關(guān)推薦

    dbForge Studio for PostgreSQL:PostgreSQL數(shù)據(jù)庫多功能集成開發(fā)環(huán)境

    什么是 dbForge Studio for PostgreSQL?是一個(gè)集成工具包中包含 PostgreSQL 所需的一切 上下文感知SQL代碼補(bǔ)全、智能格式化和語法驗(yàn)證 消除性能瓶頸的查詢優(yōu)化器
    的頭像 發(fā)表于 01-16 17:26 ?51次閱讀

    創(chuàng)建唯一索引的SQL命令和技巧

    在創(chuàng)建唯一索引時(shí),以下是一些SQL命令和技巧,可以幫助優(yōu)化性能: 使用合適的索引類型:對于需要保證唯一性的列,使用UNIQUE索引來避免重復(fù)數(shù)據(jù)的插入。 這可以確保列中的值是唯一的,同時(shí)提高查詢效率
    的頭像 發(fā)表于 01-09 15:21 ?49次閱讀

    判斷可膨脹石墨好壞的方法

    在現(xiàn)代工業(yè)中,可膨脹石墨作為一種高性能材料,廣泛應(yīng)用于石油化工、紡織、冶金、電力、機(jī)械、船舶、消防、航天及核能等領(lǐng)域。其優(yōu)良的可塑性、柔韌延展性和密封性,以及耐高溫、耐高壓、耐腐蝕、耐輻射等特性
    的頭像 發(fā)表于 01-09 15:09 ?90次閱讀

    更高精度、更低噪音 GMCC美芝電子膨脹閥以創(chuàng)新?lián)屨夹袠I(yè)“制高點(diǎn)”

    伴隨空調(diào)等暖通設(shè)備的應(yīng)用日益廣泛,消費(fèi)者對其在節(jié)能降耗與舒適度上的要求也不斷提升。因此,具備環(huán)保節(jié)能特性的變頻設(shè)備也更受消費(fèi)者歡迎。在變頻空調(diào)等各種電器中,電子膨脹閥作為先進(jìn)的節(jié)流元件,成為覆蓋從
    的頭像 發(fā)表于 12-23 12:42 ?106次閱讀

    PostgreSQL將不再支持MD5密碼

    根據(jù) PostgreSQL 代碼倉庫的最新動(dòng)態(tài),近日有維護(hù)者提交了“棄用 MD5 密碼支持”的 commit。 該維護(hù)者指出,MD5 被認(rèn)為不適合用作加密散列算法已有一段時(shí)間。 此外
    的頭像 發(fā)表于 12-10 16:14 ?168次閱讀

    MySQL還能跟上PostgreSQL的步伐嗎

    Percona 的老板 Peter Zaitsev最近發(fā)表一篇博客,討論了MySQL是否還能跟上PostgreSQL的腳步。Percona 作為MySQL 生態(tài)扛旗者,Percona 開發(fā)了知名
    的頭像 發(fā)表于 11-18 10:16 ?243次閱讀
    MySQL還能跟上<b class='flag-5'>PostgreSQL</b>的步伐嗎

    Meta開發(fā)新搜索引擎,減少對谷歌和必應(yīng)的依賴

    近日,Meta正在積極進(jìn)軍人工智能領(lǐng)域,并試圖跟上OpenAI的發(fā)展步伐。為實(shí)現(xiàn)這一目標(biāo),Meta正在開發(fā)一款全新的搜索引擎,該搜索引擎具備網(wǎng)絡(luò)爬蟲功能,能夠?yàn)橛脩籼峁┯嘘P(guān)時(shí)事的對話答案,而這些答案
    的頭像 發(fā)表于 10-29 11:49 ?414次閱讀

    無功補(bǔ)償設(shè)備外殼異性膨脹的處理方法

    無功補(bǔ)償設(shè)備外殼出現(xiàn)異性膨脹通常是由于設(shè)備內(nèi)部存在故障或環(huán)境條件不佳引起的,常見原因包括溫度過高、內(nèi)部元件老化、氣體泄漏等。以下是一些常見的處理方法: 1、檢查內(nèi)部元件 : 首先切斷電源,檢查設(shè)備
    的頭像 發(fā)表于 10-24 14:18 ?133次閱讀
    無功補(bǔ)償設(shè)備外殼異性<b class='flag-5'>膨脹</b>的處理方法

    MATLAB中的矩陣索引

    對矩陣進(jìn)行索引是從矩陣中選擇或修改部分元素的一種方式。MATLAB 有幾種索引樣式,它們不僅功能強(qiáng)大、靈活,而且可讀性強(qiáng)、表現(xiàn)力強(qiáng)。矩陣是 MATLAB 用來組織和分析數(shù)據(jù)的一個(gè)核心組件,索引是以可理解的方式有效操作矩陣的關(guān)鍵。
    的頭像 發(fā)表于 09-05 09:28 ?504次閱讀
    MATLAB中的矩陣<b class='flag-5'>索引</b>

    opa2227測試負(fù)載為10K,為啥擺幅從14v減少到11v時(shí),輸出電流會(huì)變化這么大?

    opa2227中有個(gè)輸出擺幅與輸出電流的關(guān)系。測試負(fù)載為10K,為啥擺幅從14v減少到11v時(shí),輸出電流會(huì)變化這么大? 比如輸出11v時(shí),電流是11/10k=1.1mA,為圖表上是50mA? 并且輸出電壓從14v降到11v時(shí),
    發(fā)表于 08-07 06:30

    一文了解MySQL索引機(jī)制

    接觸MySQL數(shù)據(jù)庫的小伙伴一定避不開索引索引的出現(xiàn)是為了提高數(shù)據(jù)查詢的效率,就像書的目錄一樣。 某一個(gè)SQL查詢比較慢,你第一時(shí)間想到的就是“給某個(gè)字段加個(gè)索引吧”,那么索引是什么
    的頭像 發(fā)表于 07-25 14:05 ?316次閱讀
    一文了解MySQL<b class='flag-5'>索引</b>機(jī)制

    ClickHouse內(nèi)幕(3)基于索引的查詢優(yōu)化

    ClickHouse索引采用唯一聚簇索引的方式,即Part內(nèi)數(shù)據(jù)按照order by keys有序,在整個(gè)查詢計(jì)劃中,如果算子能夠有效利用輸入數(shù)據(jù)的有序性,對算子的執(zhí)行性能將有巨大的提升。本文討論
    的頭像 發(fā)表于 06-11 10:46 ?1050次閱讀
    ClickHouse內(nèi)幕(3)基于<b class='flag-5'>索引</b>的查詢優(yōu)化

    談?wù)勚评湎到y(tǒng)的膨脹

     膨脹閥能讓蒸發(fā)器出口處的過熱度保持在一定水平, 防止液態(tài)制冷劑離開蒸發(fā)器進(jìn)入壓縮機(jī)。一旦液態(tài)制 冷劑進(jìn)入壓縮機(jī),便會(huì)發(fā)生液擊。
    的頭像 發(fā)表于 02-29 18:23 ?2432次閱讀
    談?wù)勚评湎到y(tǒng)的<b class='flag-5'>膨脹</b>閥

    Redis官方搜索引擎來了,性能炸裂!

    RediSearch 是一個(gè) Redis 模塊,為 Redis 提供查詢、二級索引和全文搜索功能。
    的頭像 發(fā)表于 02-21 10:01 ?2436次閱讀
    Redis官方搜<b class='flag-5'>索引</b>擎來了,性能炸裂!

    谷歌搜索引擎優(yōu)化的各個(gè)方面和步驟

    谷歌搜索引擎是最受歡迎和廣泛使用的搜索引擎之一,為了使你的網(wǎng)站在谷歌上更好地排名并提高曝光度,你可以采取一些谷歌搜索引擎優(yōu)化的步驟。 使用關(guān)鍵字研究工具,如Google AdWords關(guān)鍵字規(guī)劃工具
    的頭像 發(fā)表于 01-25 10:29 ?925次閱讀
    主站蜘蛛池模板: 国产精品久久久久久久久齐齐| 国产亚洲一区二区三区在线| 久久澳门| 国产午夜精品理论片| 性做久久久久久久免费看| 狂捣猛撞侍卫攻双性王爷受| 不卡视频免费在线观看| 亚洲色图25p| 亚洲成人网页| 视频在线观看h| yy6080三级理论韩国日本| 天天干网址| 国产经典三级在线| 久久综合丁香| 国产大乳喷奶水在线看| 久久国产精品免费网站| 黄色二级视频| 老色批午夜免费视频网站| 国产一级片免费看| 小优视频在线| 午夜香蕉视频| 免费人成网站永久| 黄色在线视频网| 操女人视频网站| 国产在线一区视频| 四虎www.| 国产在线a不卡免费视频| 午夜视频在线免费观看| 国产香蕉视频在线| 特大一级aaaaa毛片| 天堂在线网| 黄色网址在线免费观看| 国语自产自拍秒拍在线视频 | 2021国产精品| 国产jlzzjlzz视频免费| 国产视频观看| 欲妇放荡叫床很浪的小说| 亚欧乱色束缚一区二区三区| 亚洲天堂首页| 美女视频一区| 国产午夜精品不卡片|