oracle數(shù)據(jù)庫知識點總結(jié) 為什么傳統(tǒng)行業(yè)幾乎都用Oracle,而互聯(lián)網(wǎng)行業(yè)幾乎都不用Oracle呢?
為什么傳統(tǒng)行業(yè)幾乎都用Oracle,而互聯(lián)網(wǎng)行業(yè)幾乎都不用Oracle呢?首先銀行要求絕對穩(wěn)定性,使用付費不開源產(chǎn)品可以完全責(zé)任委托,而且數(shù)據(jù)庫廠商還會有專門維護,省心,省力,安全。mysql呢,開源
為什么傳統(tǒng)行業(yè)幾乎都用Oracle,而互聯(lián)網(wǎng)行業(yè)幾乎都不用Oracle呢?
首先銀行要求絕對穩(wěn)定性,使用付費不開源產(chǎn)品可以完全責(zé)任委托,而且數(shù)據(jù)庫廠商還會有專門維護,省心,省力,安全。
mysql呢,開源產(chǎn)品,穩(wěn)定性沒有o高,如果要深度開發(fā)倒是很省事,不過使用mysql就完全要看自己了,銀行不會為了一個隨時都有可能出現(xiàn)意外的定時炸彈找專門團隊維護,而且銀行交易量很大,但并非像互聯(lián)網(wǎng)應(yīng)用一樣超級并發(fā),大部分都是內(nèi)部接口使用,而且分地區(qū)都是不同的服務(wù)器,每個地區(qū)只存儲自己相關(guān)的數(shù)據(jù),比如你從廣東給山東異地轉(zhuǎn)賬,原始山東賬戶里并不存你的記錄,轉(zhuǎn)了之后山東數(shù)據(jù)庫才有記錄,在依賴oracle商業(yè)委托的基礎(chǔ)下,銀行還會有對賬,來保證數(shù)據(jù)一致性。
但是反觀互聯(lián)網(wǎng)企業(yè)就不一樣了,超級并發(fā),小型機已經(jīng)不滿足這種并發(fā)條件了,哪怕oracle足夠優(yōu)秀,所以要使用應(yīng)對更高并發(fā)特制的mysql,需要有專業(yè)的團隊進行維護,穩(wěn)定性不如oracle,不過分布式集群可以避免這種情況。而且mysql因為開源還可以針對自己的需求特制功能。不過大部分企業(yè)用不上[捂臉],小公司用啥都一樣。阿里重新開發(fā)mysql除了自己用外還可以賣服務(wù)。
再說一句,阿里其實棄o選m其實除了并發(fā)問題,還因為oracle太貴,因為企業(yè)要考慮收支,就算阿里利潤率也比不上銀行[靈光一閃]
為什么大部分的數(shù)據(jù)庫系統(tǒng)仍然要用oracle?
因為Oracle在互聯(lián)網(wǎng)快速發(fā)展的大環(huán)境下越來越強,越做越好。Oracle目前最大的戰(zhàn)略計劃就是Cloud-云,同時Oracle會持續(xù)升級,向精細化,智能化,自動化等方法發(fā)展。關(guān)注12c,18c,19c的發(fā)展路徑就可以看到……
舉個例子說一下Oracle 19c的一個新特性(Oracle 19c還未發(fā)布,從某ACED處獲取的消息)。對于傳統(tǒng)的集群,如果某個節(jié)點掛掉,放在傳統(tǒng)的集群中,該節(jié)點正在處理的操作會失敗,從而可能導(dǎo)致事務(wù)會處理失敗被回滾。但是19c的新特性就特別牛,有守護進程會全程監(jiān)控你的事務(wù)的每一個操作,如果節(jié)點掛掉了,后臺會將所有操作切換到健康的節(jié)點重做,事務(wù)成功執(zhí)行,用戶無感知。
特別的,將Oracle與DB2相對比,Oracle和DB2相同之處就是不開源,最大的不同之處是Oracle絕對開放,DB2相對封閉。比如Oracle在使用時報了一個錯誤,我們看錯誤信息大概能知道是什么問題,還有trace日志可查。但是DB2報了個錯誤,那就是一串錯誤碼,讓人不明所以。
也正是Oracle的開放,造就了Oracle在全球數(shù)據(jù)庫市場占用率最高的局面,同時也造就了Oracle相對完善的生態(tài)圈。從安全性、穩(wěn)定性、可維護性等角度考慮,從公司發(fā)展的角度來看,大部分的數(shù)據(jù)庫系統(tǒng)仍然要用oracle。