openGauss和PG的差異對(duì)比
- 了解openGauss相對(duì)于PG的優(yōu)缺點(diǎn)
參考文檔:https://blog.opengauss.org/zh/post/shujukujiagouzhimei/opengauss%E4%B8%8Epostgresql%E7%9A%84%E5%AF%B9%E6%AF%94/
openGauss在PostgreSQL v9.2.4的基礎(chǔ)上做了修改和增強(qiáng)盐类。
- 線程池
openGauss將PostgreSQL的進(jìn)程模式修改為線程模式,線程模式可以支持更大的并發(fā)請(qǐng)求村生。而通過線程池沿量,可以提高線程的利用率,高并發(fā)場景下不會(huì)有線程的頻繁切換笼恰。
-- 線程共享內(nèi)存踊沸,存在線程寫壞內(nèi)存,其他線程無法感知的風(fēng)險(xiǎn) - 最大可用模式
PostgreSQL主備同步模式不能自動(dòng)降級(jí)社证,備庫故障時(shí)主庫會(huì)hang逼龟,影響主庫的可用性。
最大可用模式:在主備連接正常時(shí)追葡,以同步模式提交數(shù)據(jù)腺律,在主備連接失敗時(shí),自動(dòng)切換為異步模式宜肉,不影響主庫的可用性匀钧。
openGauss支持了最大可用模式,可以將參數(shù)most_available_sync設(shè)置為on來啟用谬返。啟用后之斯,在主備連接正常時(shí),以同步模式提交數(shù)據(jù)遣铝,當(dāng)備庫斷連時(shí)自動(dòng)切換為異步模式佑刷,在備庫恢復(fù)時(shí)莉擒,切換回同步模式。
-- 降級(jí)后如果剛好進(jìn)行切換瘫絮,可能存在丟數(shù)據(jù)的風(fēng)險(xiǎn) - SMP并行查詢
利用系統(tǒng)多核的能力啰劲,提高重查詢性能。 - 事務(wù)ID不可耗盡
openGauss將transactionid由int32修改為int64檀何,避免了事務(wù)ID回卷導(dǎo)致宕機(jī)蝇裤。
-- 改成64位,元組的頭部信息擴(kuò)大 - 增量檢查點(diǎn)
增量檢查點(diǎn)可以避免全頁寫導(dǎo)致的性能波動(dòng)频鉴,數(shù)據(jù)庫recover時(shí)用時(shí)明顯縮短栓辜。 - dbe_perf性能監(jiān)控schema
openGauss每個(gè)庫下會(huì)默認(rèn)存在schema:dbe_perf,schema下有幾百個(gè)性能監(jiān)控視圖垛孔,方便查看和管理藕甩。 - 支持列存表,列存緩沖區(qū)
openGauss支持列存表周荐,通過cstore_buffers控制列存緩沖區(qū)大小狭莱,列存表支持壓縮。
-- 列存表可能出現(xiàn)表膨脹概作,注意開啟enable_delta_store參數(shù)腋妙。對(duì)于頻繁的少量插入,性能較差讯榕。壓縮率大消耗CPU資源多 - 支持內(nèi)存表
openGauss支持內(nèi)存表骤素,將數(shù)據(jù)全部緩存在內(nèi)存中,所有數(shù)據(jù)訪問實(shí)現(xiàn)免鎖并發(fā)愚屁,實(shí)現(xiàn)高吞吐济竹,低延遲訪問。 - NUMA架構(gòu)優(yōu)化
通過NUMA綁核霎槐,減少跨核內(nèi)存訪問的時(shí)延問題送浊,提升CPU利用率,提升多線程間同步性能丘跌,xlog日志寫入性能袭景,熱點(diǎn)數(shù)據(jù)分散處理。 - wdr報(bào)告
類似oracle awr性能報(bào)告碍岔。 - 并行回放
支持備機(jī)并行回放日志浴讯,提交復(fù)制性能朵夏。 - 主備從與一主多備
支持主備從蔼啦,一主多備。主備從模式:主備機(jī)物理復(fù)制仰猖,從機(jī)默認(rèn)沒有數(shù)據(jù)捏肢,當(dāng)主庫宕機(jī)奈籽,備機(jī)與從機(jī)組成新的復(fù)制關(guān)系,從機(jī)開始復(fù)制數(shù)據(jù)鸵赫,節(jié)省空間并保證高可用衣屏。 - 灰度升級(jí)
提供在線升級(jí),保證在不中斷業(yè)務(wù)的情況下辩棒,進(jìn)行所有節(jié)點(diǎn)的升級(jí)
openGauss還存在一些不足之處狼忱。
- 編譯過于復(fù)雜,依賴過多
編譯需要很多依賴且版本固定一睁,跨平臺(tái)編譯難度大钻弄。 - 一些插件未能正常編譯使用