999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關系型數據庫開源產品技術的應用

2019-11-18 07:04:42王佳新黃曉光張蜜蜜
電子技術與軟件工程 2019年18期
關鍵詞:引擎數據庫

文/王佳新 黃曉光 張蜜蜜

關系型數據庫是現代企業信息化不可或缺的基礎性軟件。當前很多大型信息系統使用的是Oracle、DB2、SQL Server等大型商用數據庫,這些商業數據庫存在成本高、安全隱患突出、核心技術無法自主可控等問題。開源關系型數據庫技術和產品經過幾十年的發展,功能完善、性能優越、應用范圍越來越廣,正在逐步取代商業數據庫,成為關系型數據庫領域的主流。研究開源關系型數據庫技術和產品以及應用對企業信息化具有重要的戰略意義。

1 PostgreSQL與MySQL簡介

近年來,開源關系型數據庫產品可以用“百花齊放”來形容,例如最為著名要屬PostgreSQL和MySQL,相對小眾的如MariaDB、Firebird、SQLite、Derby。其 中,MySQL和PostgreSQL是最具代表性的產品,流行度連續多年占據開源關系型數據庫排名的前兩位,在所有數據庫排名中分別位居第2位和第4位。

1.1 PostgreSQL

PostgreSQL是功能強大的開源數據庫,可運行在所有主流操作系統上。PostgreSQL作為一種企業級數據庫,具有事務安全、兼容眾多SQL標準、高度可定制性、支持云計算平臺等特點。PostgreSQL數據庫采用基于進程的體系結構,由連接管理系統(系統控制器)、編譯執行系統、存儲管理系統、事務系統、系統表五部分組成。

1.2 MySQL

MySQL是世界上最流行的開源數據庫,目前MySQL可以運行在所有主流操作系統上。MySQL的版本一直在不斷變更,無論在從功能還是性能上,都有了持續的提升。MySQL功能和特點主要有:插件式的存儲引擎、MySQL Cluster技術、嵌入式支持、編程接口支持、多種管理工具、支持云計算平臺。MySQL數據庫的核心包括系統管理和控制工具、連接池、SQL接口、解析器、優化器、緩存、存儲引擎。從邏輯上講,MySQL可以被認為由雙層架構組成,第一層是SQL層,負責處理底層數據之前的所有工作,包括SQL解析、權限判斷、執行計劃優化等;第二層是存儲引擎層,負責底層數據存取操作實現部分,多種存儲引擎位于此層。

可選擇的存儲引擎是MySQL的一個最重要特性,根據不通的業務應用場景,可以選擇相應的存儲引擎。例如:以讀為主的數據庫采用MyISAM引擎,臨時表可使用 MEMORY存儲引擎。MySQL 5.6 原生支持9個引擎,最常使用的是InnoDB,MyISAM和NDB Cluster。

2 PostgreSQL與MySQL對比分析

2.1 性能

關于MySQL和PostgreSQL的性能對比,有很多種比較的方法和角度。例如TPCH測試、Sysbench標準測。以國網某省公司營銷系統為例為例,對比數據庫的事務tps以及95%事務的響應時間。模擬業務場景測試的數據量大于1億行的表35張,千萬行的表73張,最大表33億行,數據大小1T。表1和表2分別記錄各線程下,各數據庫每秒事務數和95%事務響應時間。

表1:業務系統Sysbench測試結果(每秒執行事務數)

表2:業務系統Sysbench測試結果(95%事務響應時間)

圖1:PostGIS結構圖

從兩款數據庫的發展路線不同,MySQL從一開始就著重性能,而PostgreSQL的發展注重功能和標準的兼容以及復雜操作中的穩定性和可靠性。因此,在常見的測試中,MySQL往往優于PostgreSQL。性能也和調優密切相關,同時MySQL和PostgreSQL的調優也都很復雜,總體來講,數據庫的性能的發揮取決于操作系統環境、數據庫的配置、優化、應用場景、系統架構等多方面因素。

2.2 集群方案

集群(Cluster)是指由兩臺或多臺節點機(服務器)構成的一種松散耦合的計算節點集合。功能上提供了容錯、故障恢復、解決單點故障,增加系統高可用性,增加計算能力等功能。不同的集群方案的側重點不同。

2.2.1 MySQL Cluster

MySQL Cluster是一種在無共享架構(SNA,Share Nothing Architecture)系統里應用內存數據庫集群的技術。使用NDB引擎,可實現讀寫分離,主從復制,實現故障切換和負載均衡。MySQL Cluster采用分布式設計,避免單點故障點。MySQL聲稱其具99.999%高可用性。目前社區版和商業版都支持。

2.2.2 PostgreSQL-XL

PostgreSQL-XL是一種提供寫可靠性,多主節點數據同步,數據傳輸的開源集群方案。其特點是可以跨多個節點或者分區表,或復制它們,分區(或分布)表允許跨多個節點的寫入可擴展性,以及大規模并行處理(MPP)大數據類型的工作負荷,完全ACID。適用場景為:OLTP 寫頻繁的業務、需要MPP并行性商業智能、操作數據存儲;Key-value 存儲、GIS的地理空間、混合業務工作環境、多租戶服務提供商托管環境。

2.3 GIS支持

地理信息系統(GIS)是一種具有信息系統空間專業形式的數據管理系統。GIS數據庫是某區域內關于一定地理要素特征的數據集合,主要涉及對圖形和屬性數據的管理和組織。MySQL和PostgreSQL都在不斷地完善對GIS的支持。

MySQL 可以通過spatial extensions in MySQL可以應對功能簡單的GIS或LBS應用,而對于功能復雜的應用,PostGIS無疑更加適合。PostGIS是PotgreSQL在GIS方面的擴展,為PostgreSQL提供了存儲空間地理數據的支持,使PostgreSQL成為了一個空間數據庫,能夠進行空間數據管理、數量測量與幾何拓撲分析。PostGIS是一個重要的GIS基礎軟件,目前它是為數不多的開源空間數據庫存儲方案之一,同時也廣泛的應用在開源GIS中,有許多著名的GIS軟件都使用PostGIS作為數據庫后端。PostGIS是著名開源地理信息系統OpenStreetMap的基礎,OpenStreetMap的數據庫后臺就是PostgreSQL+PostGIS,使用OpenStreetMap的企業和應用包括Apple、Microsoft、Wikipedia。

圖1為PostGIS的概念圖,其中GEOS(Geometry Engine Open Source)為開源幾何引擎,PROJ.4是開源GIS最著名的地圖投影庫,許多GIS開源軟件的投影都直接使用Proj.4的庫文件,LibXML2是用做解析XML文件的函數庫,提供了C語言解析和構造xml文檔的接口。

2.4 技術支持與流行度

2.4.1 文檔支持

MySQL的優勢在于,市場上MySQL參考資料很多,而且大多數人在學校就開始接觸MySQL,因此在文檔支持性方面,MySQL在開源數據庫領域中排行第一。

PostgreSQL源代碼清晰,易讀性比MySQL好,官方文檔也非常出色,很多人都是直接通過閱讀官方文檔開始學習PostgreSQL。但PostgreSQL的第三方參考資料相對較少,特別是中文資料,國內分析PostgreSQL內核的書籍相比MySQL較少。

2.4.2 商業支持

MySQL和PostgreSQL都有商業版本及提供企業級服務的渠道商。Oracle公司收購MySQL后,對版本進行了整合。商業客戶可靈活的選擇多個版本,以滿足特殊的商業和技術需求,主要分為社區版和商業版,商業版又包括:標準版,企業版本,集群版,以年度訂閱的方式提供服務,MySQL的渠道商眾多。PostgreSQL的企業級產品與服務廠商相對較少。

2.4.3 流行度

流行度對于一個商業軟件來說,是一個很重要的指標,流行意味著更多的用戶、更多的考驗、更好的商業支持、更完善的文檔資料。圖2是2019年7月DB-Engines全球數據庫排行榜前四位排名,其實MySQL常年位居第二位,PostgreSQL常年位居第四位,但與最流行的MySQL相比,在得分上相差一個量級,技術支持度低是其中一個重要的原因。

2.5 遷移分析

眾多工具可幫助數據庫從Oracle等商用數據庫遷移到MySQL和PostgreSQL,下面簡述了MySQL與PostgreSQL遷移的工具及方法。

2.5.1 MySQL

將數據庫遷移到MySQL可通過多種工具,例如:官方的MySQL Workbench migration wizzard、Converto mysql、Mysqlgui tools、Oracletomysql等,也可以通過編寫遷移腳本。數據庫從oracle遷移到MySQL時,表結構與數據基本上可以平移過去的,但要考慮字段類型不兼容情況,Oracle的數值類型更加簡單,MySQL具有多粒度的數值類型。可以利用工具,也可以自己編寫腳本;視圖在遷移過程中,存在部分不兼容情況(有的View要做一些中間表);觸發器,存儲過程不能遷移,需要重寫代碼。

2.5.2 PostgreSQL

從Oracle數據庫遷移到PostgreSQL時,有幾款常用工具:

ESF Database Migration Toolkit:通過此工具箱,可以通過向導將數據庫從Oracle遷移到PostgreSQL,幫助遷移表結構,數據,索引,主鍵,外鍵,評論等。

Orafce:實現函數的遷移,例如日期函數(next_day,last_day,trunc,round等)、字符串函數和模塊等(DBMS_ALERT,DBMS_OUTPUT,UTL_FILE,DBMS_PIPE等)。

Ora2pg:用Perl編寫,ora2pg自動掃描并抽出表結構和數據庫,然后生成SQL腳本。

Oracle to Postgres:可自動將表結構,數據,索引,主鍵和外鍵進行轉換。

在實際進行數據遷移時通常是綜合使用多種工具。

2.6 許可協議

MySQL遵守雙重協議:GPL授權協議和商用授權協議。GPL的精髓在于開源,和是否商用沒有直接關系,如果GPL不能滿足要求,可選擇購買商業授權。

圖2:2019年7月數據庫流行度排行榜

PostgreSQL的授權是在非常自由的開源授權BSD下,這種授權允許用戶在各種開源或是閉源項目中使用、修改和發布PostgreSQL的源代碼。PostgreSQL不僅是一個強大的企業級數據庫系統,也是一個用戶可以開發私用、網絡和商業軟件產品的數據庫開發平臺。

2.7 總結

從發展歷程來看,MySQL的許多關系數據庫功能是在其發展演變過程中不斷添加進來的,而PostgreSQL從誕生之初就以關系型數據庫作為發展目標,具備完善的關系數據庫功能。從功能來看,MySQL和PostgreSQL都具備了企業級關系數據庫的功能,基本可以實現互相替換,MySQL的優勢在于其靈活的存儲引擎機制,通過替換不同的存儲引擎實現相應的功能需求。從性能來看,MySQL在很多情況下比PostgreSQL性能稍好,但相差不大,都需要根據應用場景和具體需求進行調優。從許可證來看,PostgreSQL采用了更加寬松的BSD許可證,對定制改造及商業化更加友好,而MySQL商業化要受到商用授權協議的限制,并且存在閉源風險。

3 開源關系型數據庫在大型企業中的應用分析

3.1 數據庫應用層次劃分

根據數據庫在業務系統中其扮演的角色和存儲數據的類型,可分為以下幾種類型。

(1)業務關鍵型:存儲系統運行數據,具有數據量大、增長迅速、包含業務邏輯等特點。此類數據庫的性能直接關系到業務系統的穩定運行和用戶體驗,因此對數據庫的性能、并發支持、可靠性具有較高要求。

(2)業務輔助型:存儲設備臺賬等基礎數據,此類數據庫具有數據變動不頻繁的特點。

(3)配置數據型:此類數據庫僅僅作為配置項的存儲手段,具有訪問頻度低、數據更新不頻繁、性能要求低、并發度低的特點。

3.2 企業對數據庫的應用能力劃分

大型企業在信息化過程中,離不開數據庫,根據企業對數據庫的應用、開發和維護能力,可將企業對數據庫的使用劃分為三個層次。

(1)使用數據庫:該方式是最低級的利用方式,其實質是作為開源數據庫產品的集成商,通過采購相關商業公司提供的解決方案和技術支持,將開源數據庫產品整合進公司業務系統,逐步替換Oracle等商業數據庫產品。該方式的優點是進入門檻低,投入成本低,見效快;缺點是處于開源數據庫產業鏈的底端,嚴重依賴商業公司提供的服務,缺乏技術和人才儲備。

(2)二次開發:具備一定技術實力的企業,一般會選擇對開源數據庫進行二次開發和深度定制改造,以滿足自身的需求和特殊的應用場景。該模式對企業的技術能力具有較高要求,同時需要明確的需求和應用場景;此模式能較好地積累技術儲備和應用經驗,并形成具有自主知識產權的產品。

(3)成為服務提供商:在對開源數據庫進行改造定制的基礎上,組建運維、營銷團隊,打造具有自主知識產權的數據庫產品,并能夠提供可靠持續的服務和推廣。此應用模式對企業的人才、技術、管理等具有較高要求,需要企業持續投入,見效慢,具有一定的市場風險;優點是處于產業鏈的頂端,具有較高的自主知識產權和經營能力。

3.3 應用建議

對于業務輔助型和配置數據型的數據庫應用,MySQL、PostgreSQL基本可以滿足功能和性能需求,如有替換商業數據庫的需求,可在業務系統中逐步替換;對于業務關鍵型的應用,需在驗證測試的基礎上綜合考慮,通過調優技術、定制改造等手段滿足性能需求,通過購買商業支持、組建運維團隊等方式實現商業數據庫服務的替換。

如果企業對數據庫有二次開發需求,由于許可協議的差異,建議選用PostgreSQL產品進行二次開發;

如果企業想成為服務提供商,研發帶有特色的關系型數據庫產品,建議選用PostgreSQL產品,組建運維團隊,使之成為公司新一代的核心產品。

猜你喜歡
引擎數據庫
以學促干 挺膺擔當 激活砥礪前行的紅色引擎
三生 三大引擎齊發力
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發
主站蜘蛛池模板: 亚洲中文精品久久久久久不卡| 国内精品免费| 欧美日本视频在线观看| 乱人伦视频中文字幕在线| 国内精品视频在线| 国产成人高清亚洲一区久久| 日本在线欧美在线| 国产精品不卡永久免费| 国产清纯在线一区二区WWW| 欧美区国产区| 欧美精品啪啪| 国产亚洲视频免费播放| 波多野结衣一区二区三区AV| 中文字幕久久波多野结衣| 天天摸天天操免费播放小视频| 国产超碰在线观看| 日韩大乳视频中文字幕| 中国精品自拍| 伊人久久大线影院首页| 欧美a网站| 不卡无码网| 中国一级毛片免费观看| 国内熟女少妇一线天| 99伊人精品| 色成人综合| 国产女同自拍视频| 国产精品极品美女自在线看免费一区二区 | 亚洲无码高清免费视频亚洲| 国产精品亚洲精品爽爽| 亚洲精品成人片在线观看| 自拍亚洲欧美精品| 在线精品欧美日韩| 国产成熟女人性满足视频| 亚洲中久无码永久在线观看软件| 99re在线观看视频| 亚洲一区二区无码视频| 久久精品国产精品一区二区| 成人一级免费视频| 国产精品yjizz视频网一二区| 污网站在线观看视频| 久无码久无码av无码| 精品国产成人三级在线观看| 亚洲免费三区| 男人天堂伊人网| 日韩中文字幕免费在线观看| 99re免费视频| 呦系列视频一区二区三区| 亚洲无码电影| 精品国产污污免费网站| 真实国产乱子伦高清| 国产中文在线亚洲精品官网| 蜜臀av性久久久久蜜臀aⅴ麻豆| 午夜久久影院| 欧美自拍另类欧美综合图区| 国产乱视频网站| 九九香蕉视频| 91在线视频福利| 在线观看亚洲精品福利片| 国产在线视频福利资源站| 国产美女在线免费观看| 人妻精品久久无码区| 精品无码一区二区三区电影| 人妻无码中文字幕第一区| 99精品在线看| 亚洲伊人久久精品影院| 国产精品极品美女自在线| 国产另类视频| 欧美另类视频一区二区三区| 国产欧美精品午夜在线播放| 国产成人精品免费视频大全五级| 毛片国产精品完整版| 成人国产精品网站在线看| 色哟哟国产精品| 国产成人精品综合| 国产亚洲精品yxsp| 亚洲国产高清精品线久久| 国产精品大尺度尺度视频| 在线观看视频99| 久久黄色视频影| 国产中文在线亚洲精品官网| 亚洲AV色香蕉一区二区| www.av男人.com|