PostgreSQL(Pgsql)快速開始/ ubuntu、centos下PostgreSQL數(shù)據(jù)庫(kù)安裝配置/查看已經(jīng)編譯的pg 編譯選項(xiàng)
PostgreSQL: The World’s Most Advanced Open Source Relational Database
PostgreSQL:世界上最先進(jìn)的開源關(guān)系數(shù)據(jù)庫(kù)
PostgreSQL標(biāo)榜自己是世界上最先進(jìn)的開源數(shù)據(jù)庫(kù)。PostgreSQL的一些粉絲說(shuō)它能與Oracle相媲美,而且沒(méi)有那么昂貴的價(jià)格和傲慢的客服。最初是1985年在加利福尼亞大學(xué)伯克利分校開發(fā)的,作為Ingres數(shù)據(jù)庫(kù)的后繼。PostgreSQL是完全由社區(qū)驅(qū)動(dòng)的開源項(xiàng)目。它提供了單個(gè)完整功能的版本,而不像MySQL那樣提供了多個(gè)不同的社區(qū)版、商業(yè)版與企業(yè)版。PostgreSQL基于自由的BSD/MIT許可,組織可以使用、復(fù)制、修改和重新分發(fā)代碼,只需要提供一個(gè)版權(quán)聲明即可。
PostgreSQL則是誕生于加州伯克利,伯克利還是對(duì)計(jì)算機(jī)技術(shù)有過(guò)突出貢獻(xiàn)的高校的,PostgreSQL、FreeBSD都是非常有代表性的。
1. Pgsql和Mysql的對(duì)比
【干貨總結(jié)】:可能是史上最全的MySQL和PGSQL的對(duì)比材料
參考URL:https://www.cnblogs.com/lyhabc/p/11628042.html
MySQL與PostgreSQL全方位對(duì)比
參考URL: https://baijiahao.baidu.com/s?id=1669655888792593702&wfr=spider&for=pc
MySQL與PostgreSQL對(duì)比
參考URL: https://blog.csdn.net/uniquewonderq/article/details/87648717
Pgsql和Mysql的對(duì)比
參考URL: https://blog.csdn.net/weixin_45528849/article/details/109021353
**MySQL的背后是一個(gè)成熟的商業(yè)公司,而PostgreSQL的背后是一個(gè)龐大的志愿開發(fā)組。這使得MySQL的開發(fā)過(guò)程更為慎重,而PostgreSQL的反應(yīng)更為迅速。**這樣的兩種背景直接導(dǎo)致了各自固有的優(yōu)點(diǎn)和缺點(diǎn)。
PGSQL
只有社區(qū)版,沒(méi)有其他任何分支版本,PGSQL官方統(tǒng)一開發(fā),統(tǒng)一維護(hù),社區(qū)版有所有功能,不像SQL Server和MySQL有標(biāo)準(zhǔn)版、企業(yè)版、經(jīng)典版、社區(qū)版、開發(fā)版、web版之分
國(guó)內(nèi)外還有一些基于PGSQL做二次開發(fā)的數(shù)據(jù)庫(kù)廠商,例如:Enterprise DB、瀚高數(shù)據(jù)庫(kù)等等,當(dāng)然這些只是二次開發(fā)并不算獨(dú)立分支
MySQL是C/C++混合開發(fā),PostgreSQL則是完全的C語(yǔ)言開發(fā)。
大版本發(fā)布速度
PGSQL
PGSQL每年一個(gè)大版本發(fā)布,大版本發(fā)布的第二年就可以上生產(chǎn)環(huán)境,版本迭代速度很快
PGSQL 9.6正式版推出時(shí)間:2016年
PGSQL 10 正式版推出時(shí)間:2017年
PGSQL 11 正式版推出時(shí)間:2018年
PGSQL 12 正式版推出時(shí)間:2019年 (目前(2021-1),比較常用該版本,ubuntu20.4 默認(rèn)安裝的 是postgresql-12)
MySQL
MySQL的大版本發(fā)布一般是2年~3年,一般大版本發(fā)布后的第二年才可以上生產(chǎn)環(huán)境,避免有坑,版本發(fā)布速度比較慢
MySQL5.5正式版推出時(shí)間:2010年
MySQL5.6正式版推出時(shí)間:2013年
MySQL5.7正式版推出時(shí)間:2015年
MySQL8.0正式版推出時(shí)間:2018年
CPU限制
GSQL
沒(méi)有CPU核心數(shù)限制,有多少CPU核就用多少
MySQL
能用128核CPU,超過(guò)128核用不上
第三方工具依賴情況
PGSQL
只有高可用集群需要依靠第三方中間件,例如:patroni+etcd、repmgr
MySQL
大部分操作都要依靠percona公司的第三方工具(percona-toolkit,XtraBackup),工具命令太多,學(xué)習(xí)成本高,高可用集群也需要第三方中間件,官方MGR集群還沒(méi)成熟
高可用主從復(fù)制底層原理
PGSQL
物理流復(fù)制,屬于物理復(fù)制,跟SQL Server鏡像/AlwaysOn一樣,嚴(yán)格一致,沒(méi)有任何可能導(dǎo)致不一致,性能和可靠性上,物理復(fù)制完勝邏輯復(fù)制,維護(hù)簡(jiǎn)單
MySQL
主從復(fù)制,屬于邏輯復(fù)制,(sql_log_bin、binlog_format等參數(shù)設(shè)置不正確都會(huì)導(dǎo)致主從不一致)
大事務(wù)并行復(fù)制效率低,對(duì)于重要業(yè)務(wù),需要依賴 percona-toolkit的pt-table-checksum和pt-table-sync工具定期比較和修復(fù)主從一致
主從復(fù)制出錯(cuò)嚴(yán)重時(shí)候需要重搭主從MySQL的邏輯復(fù)制并不阻止兩個(gè)不一致的數(shù)據(jù)庫(kù)建立復(fù)制關(guān)系
數(shù)據(jù)類型
PostgreSQL支持多種高級(jí)數(shù)據(jù)類型,比如array,用戶也可以定義類型,MySQL只支持標(biāo)準(zhǔn)類型。PostgreSQL支持布爾型,支持IP地址數(shù)據(jù)類型,支持常量和函數(shù)調(diào)用。PostgreSQL支持JSON和其他NoSQL功能,本機(jī)支持XML,允許索引JSON數(shù)據(jù),MySQL支持JSON,不過(guò)不支持其他的NoSQL功能。PostgreSQL的對(duì)象統(tǒng)計(jì)功能也很強(qiáng),這一點(diǎn)MySQL也有差距。
線程
PostgreSQL是多進(jìn)程、MySQL是多線程。PostgreSQL支持大多數(shù)命令類型上觸發(fā)的觸發(fā)器。MySQL是異步復(fù)制,PostgreSQL支持同步、異步、半同步復(fù)制。PostgreSQL要求所有數(shù)據(jù)必須完全滿足需求,只要出一個(gè)錯(cuò)誤整個(gè)數(shù)據(jù)入庫(kù)過(guò)程都要失敗,不過(guò)MySQL沒(méi)這樣的問(wèn)題。
參考
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。