下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 技術(shù)開發(fā) > 數(shù)據(jù)庫 > 詳解PostgreSQL 數(shù)據(jù)庫 自動Vacuum配置方式

詳解PostgreSQL 數(shù)據(jù)庫 自動Vacuum配置方式

時間:2024-02-07 12:09作者:下載吧人氣:31

PostgreSQL的Vacuum由于以下原因需要定期執(zhí)行。

釋放,再利用因更新或者刪除更新而占用的磁盤空間。

更新PostgreSQL 查詢計劃用的統(tǒng)計數(shù)據(jù)。

避免事務(wù)ID的重置而引起非常老的數(shù)據(jù)丟失。

VACUUM 的標(biāo)準(zhǔn)SQL文的執(zhí)行和其他的對數(shù)據(jù)庫的實(shí)際操作可以并行處理。

SELECT 、INSERT 、UPDATE 、DELETE 等命令和同通常一樣繼續(xù)能夠執(zhí)行。

但是,VACUUM處理中的時候, ALTER TABLE ADD COLUMN等等的命令不能夠?qū)Ρ磉M(jìn)行重新定義。

還有,由于執(zhí)行VACUUM 的時候,有大量的I/O操作,其他的操作可能性能比較低,比如查詢的反應(yīng)非常慢。為了較少對性能的影響,可以通過參數(shù)來調(diào)整。

autovacuum (boolean ):

數(shù)據(jù)庫服務(wù)器是否設(shè)置為自動vacuum。默認(rèn)為 自動vacuum。 但是如果要讓vacuum能夠正常運(yùn)轉(zhuǎn),必須使 track_counts 有效。 track_counts這個參數(shù)在 postgresql.conf配置文件內(nèi),或者通過命令來設(shè)置。

即使設(shè)置不是自動vacuum。系統(tǒng)發(fā)現(xiàn)有防止事務(wù)ID的重置的必要的時候也會自動啟動

log_autovacuum_min_duration (integer ):

設(shè)置執(zhí)行時間超過多長 的vacuum才輸出log。時間單位毫秒。

如果這個參數(shù)設(shè)置為0的話,所有vacuum相關(guān) 的log都輸出。

如果這個參數(shù)設(shè)置為-1的話,這個也是默認(rèn)設(shè)置。log的輸出無效,也就是所有vacuum相關(guān) 的log都不輸出。

這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。

autovacuum_max_workers (integer ):

設(shè)置能夠同時執(zhí)行的vacuum最大進(jìn)程數(shù)。 默認(rèn)是3個。

這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。

autovacuum_naptime (integer ):

設(shè)置數(shù)據(jù)庫執(zhí)行vacuum的最小延遲。時間單位是分。默認(rèn)是1分鐘。這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。

autovacuum_vacuum_threshold (integer ):

設(shè)置任何一張表內(nèi)觸發(fā)VACUUM 的 更新,刪除tuple的最小數(shù)。默認(rèn)為50。

這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。這個設(shè)定通過 pg_autovacuum的項目可以覆蓋每張表。

autovacuum_analyze_threshold (integer ):

設(shè)置任何一張表內(nèi)觸發(fā)ANALYZE 的更新,刪除tuple的最小數(shù)。默認(rèn)為50。

這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。這個設(shè)定通過 pg_autovacuum的項目可以覆蓋每張表。

autovacuum_vacuum_scale_factor (floating point ):

是否觸發(fā)VACUUM的判斷的時候 、設(shè)置 autovacuum_vacuum_threshold 追加的表容量斷片。默認(rèn)是0.2(即20%)。

這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。這個設(shè)定通過 pg_autovacuum的項目可以覆蓋每張表。

autovacuum_analyze_scale_factor (floating point ):

是否觸發(fā) ANALYZE 的判斷的時候 、設(shè)置 autovacuum_vacuum_threshold 追加的表容量斷片。默認(rèn)是0.1(即10%)。

這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。這個設(shè)定通過 pg_autovacuum的項目可以覆蓋每張表。

autovacuum_freeze_max_age (integer ):

為了防止事務(wù)ID的重置,VACUUM強(qiáng)制操作前,設(shè)置表的 pg_class .relfrozenxid字段的最大值。默認(rèn)是2億。

這個參數(shù)只能夠在啟動的時候設(shè)置。

autovacuum_vacuum_cost_delay (integer ):

設(shè)置自動vacuum操作中cost延遲。默認(rèn)是20毫秒。設(shè)置的為-1的話,使用vacuum_cost_delay的值。

這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。這個設(shè)定通過 pg_autovacuum的項目可以覆蓋每張表。

autovacuum_vacuum_cost_limit (integer ):

設(shè)置自動vacuum操作中cost的最大界限值。默認(rèn)是-1,這時候用vacuum_cost_limit的值。 這個參數(shù)的設(shè)置可以修改postgresql.conf配置文件,也可以通過命令來設(shè)置。這個設(shè)定通過 pg_autovacuum的項目可以覆蓋每張表。

補(bǔ)充:PostgreSQL數(shù)據(jù)庫管理:定期vacuum

為什么PostgreSQL數(shù)據(jù)庫管理工作中,定期vacuum是一個重要的工作.

原因在于以下3點(diǎn):

釋放,再利用 更新/刪除的行所占據(jù)的磁盤空間.

更新PostgreSQL查詢計劃中使用的統(tǒng)計數(shù)據(jù).

防止因事務(wù)ID的重置而使非常老的數(shù)據(jù)丟失.

第一點(diǎn)的原因是

PostgreSQL數(shù)據(jù)的插入,更新,刪除操作并不是真正放到數(shù)據(jù)庫空間.如果不定期釋放空間的話,由于數(shù)據(jù)太多,查詢速度會巨降.

第二點(diǎn)的原因是

PostgreSQL在做查詢處理的時候,為了是查詢速度提高,會根據(jù)統(tǒng)計數(shù)據(jù)來確定執(zhí)行計劃.如果不及時更新的話,查詢的效果可能不如預(yù)期.

第三點(diǎn)的原因是

PostgreSQL中每一個事務(wù)都會產(chǎn)生一個事務(wù)ID,但這個數(shù)字是有上限的. 當(dāng)事務(wù)ID達(dá)到最大值后,會重新從最小值開始循環(huán).這樣如果不及時把以前的數(shù)據(jù)釋放掉的話,原來的老數(shù)據(jù)會因?yàn)槭聞?wù)ID的丟失而丟失掉.

話說回來vacuum操作可以手動和自動.如果有專門的數(shù)據(jù)庫維護(hù)人員的話,可以適時進(jìn)行.但很多系統(tǒng)為了節(jié)省維護(hù)成本,這樣就需要依賴自動vacuum了.

雖說定期vacuum是PostgreSQL的一個弱點(diǎn),不過在8.3版本以后,把這個任務(wù)交給自動vacuum就可以了.

要使自動vacuum有效,必須設(shè)置track_counts參數(shù)為true.具體的設(shè)置可以參照官方的文檔.

定期vacuum還是自己寫一個shell來自動執(zhí)行比較好.

在shell中執(zhí)行vacuumdb命令. 例: ./vacuumdb -d databaseName –analyze

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持。如有錯誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽MySQL,技術(shù)文檔,數(shù)據(jù)庫,PostgreSQL

相關(guān)下載

查看所有評論+

網(wǎng)友評論

網(wǎng)友
您的評論需要經(jīng)過審核才能顯示

熱門閱覽

最新排行

公眾號

主站蜘蛛池模板: 男插女青青影院| 色噜噜狠狠色综合中国| 扒美女内裤摸她的机机| 伊人久久大香线蕉av色婷婷色| 1000又爽又黄禁片在线久| 日本尤物精品视频在线看| 免费A级毛片在线播放不收费| 亚洲国产香蕉视频欧美| 成年人一级毛片| 亚洲欧美在线精品一区二区 | 国产东北老头老太露脸| aⅴ在线免费观看| 日韩爱爱小视频| 你懂的国产视频| 黑猫福利精品第一视频| 好爽好深好猛好舒服视频上| 亚洲一级免费毛片| 精品无码一区二区三区在线| 国产精品久久久久免费a∨| 全部免费a级毛片| 伊人中文字幕在线观看| 成人毛片18女人毛片免费96| 亚洲午夜国产精品| 精品人妻系列无码天堂| 国产最新在线视频| lover视频无删减免费观看| 日韩欧美一区二区三区免费看| 伊人久久大香线蕉av色婷婷色| 顶级欧美妇高清xxxxx| 国内精品人妻无码久久久影院导航| 久久久久亚洲AV成人网| 欧美日韩中文视频| 午夜视频在线免费| 国产精品视频你懂的| 在线资源天堂www| 久久91精品国产91久久小草| 欧美性大战久久久久久| 全彩里番acg海贼王同人本子| 麻豆文化传媒精品免费网站| 国农村精品国产自线拍| 中国speakingathome宾馆学生 |