中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

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

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

  背景

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

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

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

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

  下面我19年來使用過的數(shù)據(jù)庫(kù):
  • 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ù)庫(kù)選型評(píng)估,如Vhayu和ONETick,我在各行業(yè)也有過內(nèi)存數(shù)據(jù)庫(kù)使用經(jīng)歷,如Oracle TimesTen和Sybase ASE內(nèi)存版本(Sybase RAP商業(yè)版的一部分,它已成為時(shí)間序列數(shù)據(jù)庫(kù)領(lǐng)域的一個(gè)強(qiáng)力競(jìng)爭(zhēng)者,特別是去年初和CEP集成后,影響越來越大)。

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

  • 你是誰;

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

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

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

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

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

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

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

  • Windows與Linux/UNIX比較;

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

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

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

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

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

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

  HA(高可用)集群功能

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

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

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

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

  • TeraData本身就是一個(gè)分布式數(shù)據(jù)庫(kù)平臺(tái);

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

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

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

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

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

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

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

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

  可擴(kuò)展性/性能

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

  • MySQL集群也支持向所有節(jié)點(diǎn)都處于活動(dòng)的集群添加節(jié)點(diǎn),但它是一個(gè)無共享集群,節(jié)點(diǎn)越多意味著有更多的數(shù)據(jù)庫(kù)副本,更多的存儲(chǔ)和在所有節(jié)點(diǎn)之間復(fù)制數(shù)據(jù)時(shí)需要更多的網(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ù)庫(kù)級(jí)(主動(dòng)/主動(dòng)復(fù)制,比SQL Server的鏡像更好),事務(wù)級(jí)(與SQL Server的事務(wù)復(fù)制類似),表級(jí),存儲(chǔ)過程級(jí),函數(shù)級(jí),MSA(多站點(diǎn)可用)以及通過日志傳送(復(fù)制世界中窮人的解決方案)實(shí)現(xiàn),它的鏡像激活器結(jié)合EMC/SRDF可以真正保證在計(jì)劃內(nèi)和計(jì)劃外停機(jī)時(shí)ZDL(零數(shù)據(jù)丟失)。

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

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

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

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

  混合系統(tǒng)

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

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

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

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

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

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

  數(shù)據(jù)倉(cāng)庫(kù)

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

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

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

  基于列的關(guān)系數(shù)據(jù)庫(kù)具有很大的優(yōu)勢(shì),因?yàn)樗焐褪嵌嗑S的,每一列都是自我索引的(B tree)。

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

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

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

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

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

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

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

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

  遷移思考

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

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

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

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

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

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

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

主站蜘蛛池模板: 欧美中文字幕一区 | 久久久人 | 99re66在线观看精品热 | 99亚洲精品| 免费一区| 精品国产精品一区二区夜夜嗨 | 久久免费精品视频 | 欧美 日韩 国产 一区 | 91 在线 | 亚洲第一免费播放区 | 久久久久久亚洲精品 | 国产a一区二区 | 亚洲精品乱码久久久久久蜜桃91 | 成人精品视频免费 | 久久天天躁狠狠躁夜夜躁2014 | 亚洲精品中文字幕在线观看 | 日韩精品免费播放 | 一级国产精品一级国产精品片 | 啪啪精品 | 在线观看视频亚洲 | 日韩精品| av网站在线播放 | av黄色国产| 国精品一区二区 | 日韩一级精品视频在线观看 | 亚洲欧洲精品一区 | 国产在线观看网站 | 免费一看一级毛片 | 国产一区二区三区久久久久久久久 | 日韩欧美国产一区二区 | 国产不卡一区 | 日韩欧美在线观看视频 | 久久这里只有精品首页 | 毛片免费视频 | 国产精品永久免费视频 | 国产激情91久久精品导航 | 国内91在线| 黄色一级免费看 | 中文字幕亚洲区一区二 | 亚洲精品日韩欧美 | www.嫩草|