成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

問題來了,PostgreSQL的好處都有啥?

數據庫 其他數據庫 PostgreSQL
PostgreSQL的Slogan是“世界上最先進的開源關系型數據庫”,但我覺得這口號不夠清晰,啥叫‘先進’?而且一看就是在懟MySQL那個“世界上最流行的開源關系型數據庫”的口號,有碰瓷之嫌。要我說最能生動體現PG特色的描述應該是:一專多長的全棧數據庫,一招鮮吃遍天。

PostgreSQL的Slogan是“世界上最先進的開源關系型數據庫”,但我覺得這口號不夠清晰,啥叫‘先進’?而且一看就是在懟MySQL那個“世界上最流行的開源關系型數據庫”的口號,有碰瓷之嫌。要我說最能生動體現PG特色的描述應該是:一專多長的全棧數據庫,一招鮮吃遍天。

 

[[233764]]

 

全棧數據庫

成熟的應用可能會用到許許多多的數據組件(功能):緩存,OLTP,OLAP/批處理/數據倉庫,流處理/消息隊列,搜索索引,NoSQL/文檔數據庫,地理數據庫,空間數據庫,時序數據庫,圖數據庫。傳統的架構選型呢,可能會組合使用多種組件,典型的如:Redis + MySQL + Greenplum/Hadoop + Kafuka/Flink + ElasticSearch,一套組合拳基本能應付大多數需求了。不過比較令人頭大的就是異構系統集成了:大量的代碼都是重復繁瑣的搬磚代碼,干著把數據從A組件搬運到B組件的事情。

在這里,MySQL就只能扮演OLTP關系型數據庫的角色,但如果是PostgreSQL,就可以身兼多職,One handle them all,比如:

  • OLTP:事務處理是PostgreSQL的本行
  • OLAP:citus分布式插件,ANSI SQL兼容,窗口函數,CTE,CUBE等高級分析功能,任意語言寫UDF
  • 流處理:PipelineDB擴展,Notify-Listen,物化視圖,規則系統,靈活的存儲過程與函數編寫
  • 時序數據:timescaledb時序數據庫插件,分區表,BRIN索引
  • 空間數據:PostGIS擴展(殺手锏),內建的幾何類型支持,GiST索引。
  • 搜索索引:全文搜索索引足以應對簡單場景;豐富的索引類型,支持函數索引,條件索引
  • NoSQL:JSON,JSONB,XML,HStore原生支持,至NoSQL數據庫的外部數據包裝器
  • 數據倉庫:能平滑遷移至同屬Pg生態的GreenPlum,DeepGreen,HAWK等,使用FDW進行ETL
  • 圖數據:遞歸查詢
  • 緩存:物化視圖

以擴展作六器,禮天地四方。

以FDW禮天,以Greenplum禮地,

以Citus禮東方,以Timescale禮南方,

以PostGIS禮西方,以Pipeline禮北方。

——《周禮·辟吉》

在探探的舊版架構中,整個系統就是圍繞PostgreSQL設計的。幾百萬日活,幾百萬全局DB-TPS,幾百TB數據的規模下,數據組件只用了PostgrSQL。獨立的數倉,消息隊列和緩存都是后來才引入的。而且這只是驗證過的規模量級,進一步壓榨PG是完全可行的。

因此,在一個很可觀的規模內,PostgreSQL都可以扮演多面手的角色,一個組件當多種組件使。雖然在某些領域它可能比不上專用組件,至少都做的都還不賴。而單一數據組件選型可以極大地削減項目額外復雜度,這意味著能節省很多成本。它讓十個人才能搞定的事,變成一個人就能搞定的事。

對絕大多數應用而言,終其生命周期都不會有超出Pg能力范圍之外的數據量級。為了不需要的規模而設計是白費功夫,實際上這屬于過早優化的一種形式。        此外,只有當沒有單個軟件能滿足你的所有需求時,才會存在分拆與集成的利弊權衡。集成多種異構技術是相當棘手的工作,如果真有那么一樣技術可以滿足你所有的需求,那么使用該技術就是最佳選擇,而不是試圖用多個組件來重新實現它。

當業務規模增長到一定量級時,可能不得不使用基于微服務/總線的架構,將數據庫的功能分拆為多個組件。但PostgreSQL的存在極大地推后了這個權衡到來的閾值,而且分拆之后依然能繼續發揮重要作用。

運維友好

當然除了功能強大之外,Pg的另外一個重要的優勢就是運維友好。有很多非常實用的特性:

  • DDL能放入事務中,刪表,TRUNCATE,創建函數,索引,都可以放在事務里原子生效,或者回滾。
  • 這就能進行很多騷操作,比如在一個事務里通過RENAME,完成兩張表的王車易位。
  • 能夠并發地創建、刪除索引,添加非空字段,重整索引與表(不鎖表)。
  • 這意味著可以隨時在線上不停機進行重大的模式變更,按需對索引進行優化。
  • 復制方式多樣:段復制,流復制,觸發器復制,邏輯復制,插件復制等等。
  • 這使得不停服務遷移數據變得相當容易:復制,改讀,改寫三步走,線上遷移穩如狗。
  • 提交方式多樣:異步提交,同步提交,法定人數同步提交。
  • 這意味著Pg允許在C和A之間做出權衡與選擇,例如交易庫使用同步提交,普通庫使用異步提交。
  • 系統視圖非常完備,做監控系統相當簡單。
  • FDW的存在讓ETL變得無比簡單,一行SQL就能解決。
  • FDW可以方便地讓一個實例訪問其他實例的數據或元數據。在跨分區操作,數據庫監控指標收集,數據遷移等場景中妙用無窮。同時還可以對接很多異構數據系統。

還有很多功能,就不一一列舉了。

生態健康

PostgreSQL的生態也很健康,社區相當活躍。

相比MySQL,PostgreSQL的一個巨大的優勢就是協議友好。PG采用類似BSD/MIT的PostgreSQL協議,差不多理解為只要別打著Pg的旗號出去招搖撞騙,隨便你怎么搞,換皮出去賣都行。君不見多少國產數據庫,或者不少“自研數據庫”實際都是Pg的換皮或二次開發產品。

當然,也有很多衍生產品會回饋主干,比如timescaledb,pipelinedb, citus 這些基于PG的“數據庫”,最后都變成了原生PG的插件。很多時候你想實現個什么功能,一搜就能找到對應的插件或實現。開源嘛,還是要講一些情懷的。

Pg的代碼質量相當之高,注釋寫的非常清晰。C的代碼讀起來有種Go的感覺,代碼都可以當文檔看了。能從中學到很多東西。相比之下,其他數據庫,比如MongoDB,看一眼我就放棄了讀下去的興趣。

而MySQL呢,社區版采用的是GPL協議,這其實挺蛋疼的。要不是GPL傳染,怎么會有這么多基于MySQL改的數據庫開源出來呢?而且MySQL還在烏龜殼的手里,讓自己的蛋蛋攥在別人手中可不是什么明智的選擇,更何況是業界毒瘤呢?Facebook修改React協議的風波就算是一個前車之鑒了。

問題

當然,要說有什么缺點或者遺憾,那還是有幾個的:

  • 因為使用了MVCC,數據庫需要定期VACUUM,需要定期維護表和索引避免膨脹導致性能下降。
  • 沒有很好的開源集群監控方案(或者太丑!),需要自己做。
  • 慢查詢日志和普通日志是混在一起的,需要自己解析處理。
  • 官方Pg沒有很好用的列存儲,對數據分析而言算一個小遺憾。

當然都是些無關痛癢的小毛小病,不過真正的問題可能和技術無關……

說到底,MySQL確實是最流行的開源關系型數據庫,沒辦法,寫Java的,寫PHP的,很多人最開始用的都是MySQL…,所以Pg招人相對困難是一個事實,很多時候只能自己培養。不過看DB Engines上的流行度趨勢,未來還是很光明的。

 

 

責任編輯:龐桂玉 來源: ITPUB
相關推薦

2014-12-09 14:38:15

JavaScript6

2018-05-22 14:44:53

2011-08-12 10:11:37

智慧運算IBMpower7

2023-11-03 07:32:07

數據庫產品文檔結構

2019-09-25 20:30:25

互聯網企業裁員IT行業

2015-12-01 09:34:15

電燈無限速度網速

2023-12-18 16:36:32

云原生技術云計算

2012-01-11 15:30:11

2022-09-21 16:48:57

數字孿生智能建筑

2013-07-04 10:34:28

2011-06-09 16:08:37

投影機體驗

2021-12-02 14:49:40

人工智能數據ANPR

2021-10-26 06:43:36

NodeJavaScript引擎

2021-06-27 06:28:55

微信微信派微信官網改版

2018-07-24 11:52:20

2009-12-31 14:19:46

Ubuntu post

2017-02-09 18:19:54

2019-12-04 16:10:43

微信拉黑

2021-10-22 13:38:14

程序員技能開發者

2025-04-24 09:27:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天天天天天天干 | 久久精品欧美一区二区三区不卡 | 人操人免费视频 | 亚洲播放一区 | 成人激情视频免费观看 | 日本免费一区二区三区视频 | 91视频在线看 | 国产高清在线观看 | 一本色道精品久久一区二区三区 | 精产国产伦理一二三区 | 国产视频一区在线观看 | 毛片一级片 | 久久五月婷 | 久久成人激情 | 日韩精品在线一区 | 国外成人在线视频 | 国产精品一二三区 | 亚洲国产69 | 日韩在线免费看 | 国产精品久久久久久吹潮日韩动画 | 国产精品久久久久久久久污网站 | 国产精品一区二区三区在线播放 | 久色激情 | 欧美在线看片 | 天天综合天天 | 亚洲欧美视频 | 日韩一级欧美一级 | 夜夜草视频 | 亚洲在线中文字幕 | 国产精品高潮呻吟久久 | 男女免费在线观看视频 | 在线观看中文字幕dvd播放 | 国产成人精品一区二区三区网站观看 | 亚洲一一在线 | 亚洲日韩欧美一区二区在线 | a在线视频 | 成人精品鲁一区一区二区 | 日本天堂一区二区 | 99精品国自产在线观看 | 欧美一级一区 | 女女爱爱视频 |