天天看點

國産化資料庫  Pgsql tidb和oceanbase 的差別國産化資料庫   Pgsql tidb和oceanbase 的差別

國産化資料庫   Pgsql tidb和oceanbase 的差別

Pgsql 

一、 PostgreSQL 的穩定性極強, Innodb 等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步,然而很多 MySQL 使用者都遇到過Server級的資料庫丢失的場景——mysql系統庫是MyISAM的,相比之下,PG資料庫這方面要好一些。

二、任何系統都有它的性能極限,在高并發讀寫,負載逼近極限下,PG的性能名額仍可以維持雙曲線甚至對數曲線,到頂峰之後不再下降,而 MySQL 明顯出現一個波峰後下滑(5.5版本之後,在企業級版本中有個插件可以改善很多,不過需要付費)。

三、PG 多年來在 GIS 領域處于優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG有大量字典、數組、bitmap 等資料類型,相比之下mysql就差很多,instagram就是因為PG的空間資料庫擴充POSTGIS遠遠強于MYSQL的my spatial而采用PGSQL的。

四、PG 的“無鎖定”特性非常突出,甚至包括 vacuum 這樣的整理資料空間的操作,這個和PGSQL的MVCC實作有關系。

五、PG 的可以使用函數和條件索引,這使得PG資料庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。

六、PG有極其強悍的 SQL 程式設計能力(9.x 圖靈完備,支援遞歸!),有非常豐富的統計函數和統計文法支援,比如分析函數(ORACLE的叫法,PG裡叫window函數),還可以用多種語言來寫存儲過程,對于R的支援也很好

 TiDB 在架構上将計算和存儲層進行高度的抽象和分離,對混合負載的場景通過 IO 優先級隊列,智能副本排程,行列混合存儲等技術使其變為可能。TiDB 作為開源的分布式關系資料庫,其特點是幾乎可以 100% 相容 MySQL 接口,也相容 MySQL 的文法和協定,在保證不喪失 ACID 事務的前提下,能夠彈性伸縮,高可用,可以同時處理 OLTP 和 OLAP 工作負載,不再需要 ETL。

 OceanBase采用的是share-nothing的分布式架構,每個OBServer都是對等的,管理不同的資料分區。單機的存儲引擎采取讀寫分離的架構,将目前更新的動态資料存入記憶體稱為MemTable,存量的基線資料存在磁盤,稱為SSTable。 一個Partition的所有資料(基線資料+增量資料+事務日志)都放在一個OBServer中,是以針對一個Partition的讀寫操作不會有跨機的操作,資料的寫入也分布到多點并行執行。

都高度相容 mysql.