一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

如何明智選擇數(shù)據(jù)庫平臺

  在數(shù)據(jù)庫世界中沒有銀彈,選擇哪個數(shù)據(jù)完全取決于你自己,你要實現(xiàn)的目標(biāo),有多少數(shù)據(jù)需要存儲,你應(yīng)用程序使用的操作系統(tǒng)和語言平臺,你的預(yù)算,以及是否需要數(shù)據(jù)倉庫,BI或決策支持系統(tǒng)等。

  背景

  我的許多朋友,開發(fā)人員,應(yīng)用和系統(tǒng)架構(gòu)師,有時甚至是系統(tǒng)管理員經(jīng)常問我同類型的問題:“Bo,在我的應(yīng)用中該使用SQL Server還是使用Oracle數(shù)據(jù)庫?”,“BO,我應(yīng)該將我的Sybase數(shù)據(jù)庫遷移到SQL Server嗎?”,“哪個數(shù)據(jù)庫(平臺)是最好的?”,“為什么我們不使用開源數(shù)據(jù)庫,如MySQL或PostgreSQL?”。所有這些問題基本上都是相同的 —— 哪個數(shù)據(jù)庫平臺最適合某個應(yīng)用程序,或是哪個數(shù)據(jù)庫平臺對IT和業(yè)務(wù)最有意義?

  為了回答這些問題,在我推薦任何數(shù)據(jù)庫平臺之前,我會問他們更多的問題(通常是十多個),很多時候人們不理解為什么一個簡單的問題會引發(fā)這么多問題。

  其實很多人不知道為什么他/她需要一個數(shù)據(jù)庫,什么是關(guān)系數(shù)據(jù)庫,數(shù)據(jù)庫與電子表格之間的差異(以及各自的優(yōu)缺點),該用Access數(shù)據(jù)庫還是SQL Server數(shù)據(jù)庫,或應(yīng)用程序能從數(shù)據(jù)庫平臺獲得什么好處。

  雖然我不是在這里宣傳數(shù)據(jù)庫是什么,但我知道對IT和非IT人員談?wù)摂?shù)據(jù)庫完全不是一回事,我不想被稱為以數(shù)據(jù)庫為中心的呆子,不過我認(rèn)為在21世紀(jì),人們一直在談?wù)揃I(商業(yè)智能),我也認(rèn)為最靈活,最復(fù)雜和最易維護(hù)的系統(tǒng)是由數(shù)據(jù)驅(qū)動的,產(chǎn)生的數(shù)據(jù)量多了就得用數(shù)據(jù)庫來保存。下面我對最流行的數(shù)據(jù)庫平臺只做簡要的介紹,并根據(jù)我的經(jīng)驗和與其它IT界朋友的互動,介紹一下人們是怎么使用這些數(shù)據(jù)庫的。

  下面我19年來使用過的數(shù)據(jù)庫:
  • dBase/FoxBase/FoxPro in the DOS/Novell/Windows 3.x world

  • MS SQL Server (6.5,7.0,2000,2005 and 2008)

  • Oracle (7, 8/8i,9i,10g)

  • Sybase SQL/ASE Servers (4.9.2, 10, 11, 11.9.2, 12/12.5, 15.x)

  • Sybase IQ 12.6/12.7

  • Informix/Dynamic (6, 7)

  • MySQL (4, 5/5.1)

  • PostGreSQL (8.3.5)/EnterpriseDB

  此外,我參加了一系列的數(shù)據(jù)庫選型評估,如Vhayu和ONETick,我在各行業(yè)也有過內(nèi)存數(shù)據(jù)庫使用經(jīng)歷,如Oracle TimesTen和Sybase ASE內(nèi)存版本(Sybase RAP商業(yè)版的一部分,它已成為時間序列數(shù)據(jù)庫領(lǐng)域的一個強(qiáng)力競爭者,特別是去年初和CEP集成后,影響越來越大)。

  我曾經(jīng)擔(dān)任過公司全職員工或不同公司不同項目的顧問,真的覺得在數(shù)據(jù)庫世界中確實沒有銀彈,選擇什么數(shù)據(jù)庫主要取決于以下幾方面因素:

  • 你是誰;

  • 你要實現(xiàn)的目標(biāo)(業(yè)務(wù)/功能要求,性能/可靠性/可擴(kuò)展性/可用性要求);

  • 當(dāng)前數(shù)據(jù)庫存儲了多少數(shù)據(jù);

  • 應(yīng)用程序要選擇的操作系統(tǒng)和語言平臺;

  • 你的預(yù)算有多少;

  • 你是否想/需要構(gòu)建一個數(shù)據(jù)倉庫,BI或決策支持系統(tǒng)。

  比較不同的數(shù)據(jù)庫系統(tǒng)就象比較不同的開發(fā)平臺和操作系統(tǒng)平臺:

  • Java/J2EE與(C#, VB)/.NET比較;

  • Windows與Linux/UNIX比較;

  • Linux與私有UNIX系統(tǒng)如AIX/HP-UX/Solaris/Tru64/Irix比較;

  • Unix與OpenMVS/UniSys/Tandem/IBM Mainframe比較。

  如果我們在前端辦公應(yīng)用系統(tǒng),如訂單錄入,銀行或電信系統(tǒng)中不需要數(shù)據(jù)庫(主要是擔(dān)憂鎖/阻塞,延遲和低I/O等),我們只希望使用數(shù)據(jù)庫來存儲事實數(shù)據(jù),或使用數(shù)據(jù)庫來備份數(shù)據(jù)。

  當(dāng)然,所有關(guān)系數(shù)據(jù)庫都提供了不同的功能,即使它們都聲稱遵循ANSI SQL和SQL-92標(biāo)準(zhǔn),但實際上都有自己的一套SQL語言,這就好比Websphere/Weblogic/Oracle App Server/Sybase Eserver/Jboss之間的關(guān)系,它們是J2EE的不同實現(xiàn),都兼容J2EE規(guī)范,但也有自己的擴(kuò)展和變化。

  關(guān)鍵任務(wù)(OLTP)和高性能系統(tǒng)

   如果我們需要數(shù)據(jù)庫在關(guān)鍵業(yè)務(wù)系統(tǒng)中發(fā)揮更重要的作用,并希望做到無故障時間/高可用/集群,可靠性(性能和數(shù)據(jù)量),災(zāi)難復(fù)制和自動生成報告等目標(biāo),或需要實現(xiàn)極端高速和低延遲(HPC,高性能計算)效果,那么我們可能需要數(shù)據(jù)庫的企業(yè)級功能,但這樣的成本也更高。

  HA(高可用)集群功能

  各數(shù)據(jù)庫平臺的集群功能如下:

  • Oracle RAC最適合HA集群,負(fù)載均衡和擴(kuò)展;

  • MS SQL Server提供HA故障轉(zhuǎn)移功能,但無負(fù)載均衡;

  • Sybase ASE 15集群與Oracle RAC功能相當(dāng);

  • TeraData本身就是一個分布式數(shù)據(jù)庫平臺;

  • MySQL集群聲稱TPC-C性能基準(zhǔn)測試比Oracle RAC還高;

  • IBM DB2/UDB在運(yùn)行AIX HACMP(高可用集群多處理)的IBM P系列/Power服務(wù)器和Veritas VCS/Sun等集群上運(yùn)行得很好。

  高性能/低延遲/內(nèi)存數(shù)據(jù)庫

  • Oracle提供TimesTen內(nèi)存數(shù)據(jù)庫;

  • MySQL的集群使用內(nèi)存存儲引擎;

  • Sybase提供ASE內(nèi)存數(shù)據(jù)庫;

  • 另外,我們還可以使用RAMSAN/SSD(固態(tài)硬盤)安裝SQL Server數(shù)據(jù)庫,所有與數(shù)據(jù)庫相關(guān)的磁盤I/O都發(fā)生在SSD上,而不是傳統(tǒng)硬盤上,因此我們可以大大減少磁盤I/O延遲,提供I/O吞吐量,并提高數(shù)據(jù)庫的整體性能;

  • 還有其它的內(nèi)存數(shù)據(jù)庫,如SQLite或eXtremeDB,但它們大多數(shù)要么只支持嵌入式系統(tǒng),要么同一時間只支持單用戶或單連接。

  可擴(kuò)展性/性能

  • 使用Oracle RAC和Sybase ASE 15集群時,如果現(xiàn)有硬件不能滿足性能要求,我們只需要向集群添加一臺功能更強(qiáng)大的服務(wù)器,然后逐步替換掉其它節(jié)點;
  • 使用SQL Server集群時,因為它僅僅支持主動/被動模式,在實例級沒有可擴(kuò)展性,如果現(xiàn)有硬件滿足不了需要,我們必須更換整個集群;

  • MySQL集群也支持向所有節(jié)點都處于活動的集群添加節(jié)點,但它是一個無共享集群,節(jié)點越多意味著有更多的數(shù)據(jù)庫副本,更多的存儲和在所有節(jié)點之間復(fù)制數(shù)據(jù)時需要更多的網(wǎng)絡(luò)流量。

  復(fù)制
  • Sybase:首先澄清一下,我不是Sybase的托兒。Sybase擁有最好的復(fù)制解決方案,超過了Oracle的數(shù)據(jù)衛(wèi)士和SQL Server的復(fù)制解決方案(即使用它的鏡像/日志傳送/事務(wù)復(fù)制,SQL Server的復(fù)制仍然遠(yuǎn)遠(yuǎn)差于Sybase的復(fù)制服務(wù)器);

  Sybase的異構(gòu)復(fù)制和同質(zhì)復(fù)制是Sybase公司上世紀(jì)90年代被華爾街排除但卻受到許多大公司使用的主要原因之一。

  Sybase復(fù)制可以在數(shù)據(jù)庫級(主動/主動復(fù)制,比SQL Server的鏡像更好),事務(wù)級(與SQL Server的事務(wù)復(fù)制類似),表級,存儲過程級,函數(shù)級,MSA(多站點可用)以及通過日志傳送(復(fù)制世界中窮人的解決方案)實現(xiàn),它的鏡像激活器結(jié)合EMC/SRDF可以真正保證在計劃內(nèi)和計劃外停機(jī)時ZDL(零數(shù)據(jù)丟失)。

  • SQL Server:SQL Server復(fù)制可以通過日志傳送和數(shù)據(jù)庫鏡像實現(xiàn)(主動/被動,R/W或只讀),支持對象級(表)粒度事務(wù)復(fù)制。

  • Oracle:Oracle的數(shù)據(jù)衛(wèi)士是數(shù)據(jù)庫克隆和災(zāi)難恢復(fù)最佳解決方案之一(使用RMAN)。

  • MySQL:MySQL提供無共享集群,基本上所有活動節(jié)點都是同步復(fù)制的,它的異步復(fù)制也支持事務(wù)和對象級復(fù)制。

  • 存儲級解決方案:使用EMC的BCV,NETApp的快照管理器,日立的快照,Veritas的卷復(fù)制器,數(shù)據(jù)復(fù)制可以發(fā)生在磁盤塊級和卷級。

  混合系統(tǒng)

  通常情況下,后端數(shù)據(jù)庫存儲了大量的數(shù)據(jù),在檢索數(shù)據(jù)(數(shù)據(jù)排序,分組,匯總和計算)時會出現(xiàn)性能問題,當(dāng)運(yùn)行速度變慢時,會影響到數(shù)據(jù)寫入過程。

  因此,對于這些類型的應(yīng)用程序,我們希望數(shù)據(jù)庫能很好地處理大量數(shù)據(jù),也可以很好地處理讀/寫阻塞問題。

  • Oracle
  Oracle是這種系統(tǒng)的最佳選擇,因為在Oracle中,讀/寫程序不會相互阻止對方,數(shù)據(jù)在整個讀取過程/會話/事務(wù)中都是一致的,系統(tǒng)開銷主要發(fā)生了內(nèi)存鎖和重做日志上。

  • SQL Server
  SQL Server 2005的新快照隔離使用了Oracle同樣的行版本化功能,但在tempdb中會產(chǎn)生更多的IO。

  • Sybase ASE
  Sybase ASE的讀/寫程序會相互阻塞對方,但Sybase IQ使用快照版本化管理解決了這個阻塞問題。

  • 其它數(shù)據(jù)庫
  還有其它一些數(shù)據(jù)庫也不存在阻塞問題,但其中一些甚至不遵從ACID(原子性,一致性,隔離性和持久性)標(biāo)準(zhǔn)。

  數(shù)據(jù)倉庫

  企業(yè)建立數(shù)據(jù)倉庫存儲/歸檔所有歷史數(shù)據(jù),以及他們認(rèn)為需要放在數(shù)據(jù)庫中的數(shù)據(jù),通常,非規(guī)范化的數(shù)據(jù)進(jìn)入數(shù)據(jù)倉庫,多維度為OLAP和商業(yè)智能(BI)解決方案提供快速檢索。

  數(shù)據(jù)倉庫也用于新的或增強(qiáng)的業(yè)務(wù)戰(zhàn)略回溯測試,此外,數(shù)據(jù)倉庫中的數(shù)據(jù)是呈指數(shù)增長而非線性增長的。

  基于列的關(guān)系數(shù)據(jù)庫優(yōu)勢

  基于列的關(guān)系數(shù)據(jù)庫具有很大的優(yōu)勢,因為它天生就是多維的,每一列都是自我索引的(B tree)。

  典型的基于列的數(shù)據(jù)庫有Google的Big Table,Sybase IQ,Vertica和基于MySQL構(gòu)建的KickFire。

  平均而言,這些基于列的數(shù)據(jù)庫比傳統(tǒng)的基于行的關(guān)系數(shù)據(jù)庫(如Oracle,SQL Server,Sybase ASE,TeraData,DB2和MySQL)在數(shù)據(jù)檢索速度上要快60到100倍,但在基于行級進(jìn)行數(shù)據(jù)更新時它們的速度較慢,到目前為止,Sybase IQ似乎是這一領(lǐng)域的領(lǐng)頭羊,號稱世界上最大的數(shù)據(jù)倉庫(超過1P字節(jié))就是用的Sybase IQ。

  請訪問這些數(shù)據(jù)庫的網(wǎng)站了解更詳細(xì)的信息:
  • http://www.kickfire.com/Solutions/Resource-Center
  • http://www.sybase.com/products/datawarehousing/sybaseiq

  更多有關(guān)基于列的關(guān)系數(shù)據(jù)庫信息

  用Oracle和SQL Server作數(shù)據(jù)倉庫時都需要建立多維數(shù)據(jù)立方體,需要的存儲空間也會更多,我個人認(rèn)為,用基于行的關(guān)系數(shù)據(jù)庫作的數(shù)據(jù)倉庫將會很快被基于列的數(shù)據(jù)倉庫取代。

  總體而言,基于行的關(guān)系數(shù)據(jù)(SQL Server,Oracle,Informix,DB2/UDB,MySQL,Sybase ASE等)適合OLTP應(yīng)用,而基于列的關(guān)系數(shù)據(jù)庫(Sybase IQ,KickFire,Vertica等)更適合OLAP/DSS和數(shù)據(jù)倉庫應(yīng)用

  注意:那些時間序列數(shù)據(jù)庫如ONETick,kdb+和Vhayu都不能算是關(guān)系數(shù)據(jù)庫,它們的存儲結(jié)構(gòu)是基于文件的,每一列的數(shù)據(jù)都使用一個單獨的文件存儲,基本上算是基于列的數(shù)據(jù)庫,基于列的數(shù)據(jù)庫也可用于回溯測試。此外,基于行的數(shù)據(jù)倉庫(立方體)中的數(shù)據(jù)是呈指數(shù)級增長,但基于列的數(shù)據(jù)倉庫中的數(shù)據(jù)是呈線性增長的。

  傳統(tǒng)上,Oracle在數(shù)據(jù)倉庫領(lǐng)域處于領(lǐng)先的優(yōu)勢,但現(xiàn)在在基于列的關(guān)系數(shù)據(jù)庫(如Sybase IQ,Vertica和KickFire)面前已經(jīng)失去優(yōu)勢,Google正在使用的Big Table也是一種基于列的數(shù)據(jù)庫/存儲系統(tǒng)。

  遷移思考

  承受能力和現(xiàn)有數(shù)據(jù)庫上已有的投資是另一個需要考慮的事情。

  我見過不少從Sybase遷移到SQL Server的成功案例,反之亦然,但還很少看到從Sybase/SQL Server遷移到Oracle的,反之亦然。
  根據(jù)數(shù)據(jù)庫的規(guī)模和應(yīng)用范圍,要遷移Sybase/SQL Server存儲過程,重寫應(yīng)用程序并進(jìn)行測試可能需要很長一段時間,即使有Oracle遷移工作臺的幫助(現(xiàn)在我們可以使用SQL Developer),每個存儲過程都得重寫,如果應(yīng)用程序只使用了ODBC/JDBC/ADO.NET,并且無存儲過程/臨時表,那么遷移會比較容易。

  原生支持的編程語言
  前面已經(jīng)說過,Oracle對Java的支持是最好的,我們可以在Oracle中存儲Java代碼,并將其作為原生Oracle功能使用,這使得Oracle的擴(kuò)展性非常好(有點象開放源碼),此外,Sybase也原生支持Java代碼。SQL Server和Sybase支持?jǐn)U展存儲過程,基本上是指數(shù)據(jù)庫中調(diào)用外部動態(tài)庫的一個接口,它可以用不同的編程語言實現(xiàn)。

  擁有成本
  當(dāng)我們在研究這些數(shù)據(jù)庫的功能時,有一點必須要記住,那就是成本和時間范圍,即使你有一個經(jīng)驗豐富的數(shù)據(jù)庫團(tuán)隊,如果所選數(shù)據(jù)庫平臺超過了3個也就沒有什么意義了。此外,將所有數(shù)據(jù)庫合并到一個數(shù)據(jù)庫平臺也沒有太大意義,因為大部分異構(gòu)數(shù)據(jù)庫都可以通過SQL Server的鏈接服務(wù),Oracle網(wǎng)關(guān),或使用一些數(shù)據(jù)庫復(fù)制和ETL工具代替。當(dāng)你在考慮數(shù)據(jù)庫的維護(hù)成本時,不要孤立數(shù)據(jù)庫成本,相反,要將其作為你的應(yīng)用程序和基礎(chǔ)設(shè)施的一部分看待。

  我希望這篇文章對那些將要或正在為其應(yīng)用程序挑選數(shù)據(jù)庫的人們有所幫助,不會為自己做出的選擇而后悔。

it知識庫如何明智選擇數(shù)據(jù)庫平臺,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产成人在线视频免费观看 | 亚洲精品国产啊女成拍色拍 | 激情视频激情小说激情图片 | 欧美wwwww| 国产精品久久自在自2021 | 中国毛片免费观看 | 久久88| 2020国产成人精品视频人 | 天天色综网 | 久久亚洲精品中文字幕二区 | 四虎影永久在线观看网址 | 在线观看a网站 | 美女网站视频一区 | 亚洲天堂一区二区在线观看 | 成人在线色视频 | 色婷婷激情五月综合 | 久久国产加勒比精品无码 | 色女人天堂 | 69国产成人综合久久精 | 怡红院免费全部视频在线视频 | 久久99国产一区二区三区 | 41sao.can在线观看国产 | 日韩久久一区二区三区 | 色哟哟精品视频在线观看 | 久久久毛片 | 黄免费观看 | 色多多福利网站 | aⅴ一区二区三区无卡无码 aaaaaa精品视频在线观看 | 成人a视频在线观看 | 91久久青青草原线免费 | 国产骚 | 国产女人视频 | 五夜婷婷| 欧美成人免费一区在线播放 | 国产精品久久久久久一级毛片 | 一级做a爰片性色毛片小说 一级做a爰片性色毛片新版的 | 国产美女毛片 | 韩国毛片在线观看 | 久草一级片 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久丝袜精品综合网站 |