資料庫選型的一些看法2(轉)

物理狂人發表於2012-05-12

關於資料庫平臺的選型,一般需要先對應用系統進行大致的分類,個人認為,就目前的大部分應用系統而言,可以分為以下的三類:
1,企業中用於日常生產的ERP系統。
2,企業中的資料倉儲的各項應用。
3,網際網路的一些應用系統。


這三類應用系統各有特點,這些特點也就大致的決定的資料庫的平臺:
1ERP系統一般是內網執行,即通常意義上的OLTP系統,呈現出在某個時間段內交易事務量較大,併發會話較多,但大部分都是對單條記錄進行DML操作,對資料庫的主要要求也是交易吞吐量與事務控制的完整性,這一點,大部分的關係型資料庫都可以滿足,對於資料庫的選型,也可以根據公司的經濟情況及人力資源來決定。常規選擇一般是ORACLESQL SERVERMYSQL等。對於大型企業中的大型ERP,可考慮選用ORACLE資料庫,如果選用ORACLE資料庫,則意味著需要更多的經濟成本,同時,也需要請相應的技術人員來管理與維護ORACLE資料庫。如果選用SQL SERVER資料庫,可以節省一定的經濟成本。但如果選用開源的MYSQL資料庫,雖可節省購買軟體的成本,但也需要請專業人員對MYSQL進行管理。對於這類ERP系統,一般較少公司會去選用DB2,一則,DB2資料庫開放性不好,二則,資料庫的監控也較難,三則,DB2資料庫的技術人才也較難請到。


2,資料倉儲的相關應用,目前,國內資料倉儲的應用系統主要呈現的特點是:存放在資料倉儲中的資料量非常大,一般都是TB級;大部分的應用都是報表程式,需進行大量的統計分析。針對於這些特點,如果選用一般的關係型資料庫(如DB2ORACLESQL SERVER),可能會對應用統計的效能有較大的影響。因為這一類資料庫,以事務型為主,並大量的使用鎖機制,確保併發事務對資料操作的正確性,可以支援高的併發會話數。但在資料倉儲中,所有的應用都以查詢為主,較少或者不會對資料倉儲中的資料進行DML操作,此時,關係型資料庫中的鎖機制,似乎就對資料倉儲中的大量資料讀產生限制,也沒有較高的併發量,但是,由於統計程式需要統計大量的資料,這個就需要所選用的資料庫能解決IO瓶頸的問題,同時,也需要支援並行操作。針對於資料倉儲應用的這些特點及關係型資料庫的特性,如果在大型的企業級資料倉儲中,選用常規的DB2ORACLE等資料庫,顯然顯得不太合適。從業界的資料倉儲的平臺使用情況來看,早年建立的EDW,大多選用的還是DB2(金融業)與ORACLE(製造業與通訊行業),但選SQL SERVER的較少。目前,大多數大公司的EDW基本都採用了TD,較少國內公司也採用了ORACLE公司的EXADATA一體機,當然,也有采用IBM公司的ISAS一體機。這次我們公司在資料倉儲平臺選型的POC測試中,就是從TDORACLE EXADATAIBM ISAS三家資料庫中進行選型,這三家公司推出的都是一體機,資料庫本身都還是TD13ORACLE11GDB29.7,但是從硬進行上進行大量的優化。TD的並行性最好,也從資料倉儲這門技術是對資料庫進行大量的改進,是三家資料庫中,最適合用於資料倉儲中(比如,較少的REDO日誌,對全量表的操作的特殊處理,時序表等技術),ORACLE有效的解決了IO的瓶頸,能達到30GB/S,這一點是其它兩家所達不到的。TDORACLE在所有的表上均沒有索引,這有效的節約了儲存空間,但對資料的操作效能並沒有因此而下降。在本次的POC中,IBM排在了最後。


3,網際網路的應用,其主要特點就是實時性要求高,資料量非常大,但對於部分資料的事務一致性,完整性,可能要求並不是很高。比如,一般客戶的QQ聊天記錄,可能對於運營公司來說,這類資料可能都不需要儲存在資料庫中。再如現在的微信中手機搖一搖,有哪一個手機使用者對於運營公司所給出的結果進行了正確性的驗證呢,手機使用者只是知道運營公司給了結果,但運營公司是不是將同一時刻搖手機的所有使用者都返饋給手機使用者了,誰也不知道。這就是說,對於這類應用,完全可以選用一些開源的資料庫,節省公司的經濟成本,但對於關鍵型的資料,還是需要選用商用資料庫(比如,使用者資料,交易支付資料等)。對於開源資料庫,目前,使用者量最大的應屬MYSQL了。MYSQL資料庫也可以跨平臺執行,並且也可以很容易的得到幫助(無論是官方的,還是社群的)。

說了這麼多,其主要想表達的思想是:資料庫的選定,應以應用系統的特點來驅動,當然,應用系統的使用者也可決定資料庫的平臺。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24104518/viewspace-723420/,如需轉載,請註明出處,否則將追究法律責任。

相關文章