數據庫歷險記(一) | MySQL這么好,為什么還有人用Oracle?


文章首發於微信公眾號「陳樹義」,專注於 Java 技術分享的社區。點擊鏈接掃描二維碼,與500位小伙伴一起共同進步。微信公眾號二維碼 http://p3npq6ecr.bkt.clouddn.com/blog/chenshuyi_gongzhonghao_guide_full.jpg

關系型數據庫(Relational DataBase Management System),簡稱 RDBMS。說起關系型數據庫,我們腦海中會立即浮現出 Oracle、MySQL、SQLServer 等數據庫,這些都是我們常用的關系型數據庫。

關系型數據庫最大的特點就是在其關系這個詞,它可以保存數據庫中的各種關系。那么這個關系如何理解呢?我們就拿學校的一個例子來講吧。在學校里,我們有老師(Teacher)、學生(Student)、課程(Course)這幾個實體,而這幾個實體之間都是有一定關系的。例如:一個老師能教多個學生,一個學生也能被多個老師教,所以老師和學生之間的關系是N:N的關系。於此類似,學生與課程也是N:N的關系。

關系型數據庫的發展歷程

在1979年,Larry Ellison 使用匯編和C語言主導開發了第一個商用關系型數據庫 Oracle。在此之后的接近16年內的時間,Oracle 數據庫一路奔跑,成為了世界上最流行的關系型數據庫。

在1989年,微軟(Microsoft)也發布了一個關系型數據庫 SQL Server,但其同樣也是一個收費的商業型數據庫。

直到1995年,瑞典公司MySQL AB發布了 MySQL 數據庫的第一個版本,從此終結了關系型數據庫只能用 Oracle、SQL Server 這些收費軟件的神話。

在 MySQL 誕生后,因為其開源、免費的特性,所以其得到了眾多中小使用者的擁護,其用戶量增長迅猛。而在這期間,MySQL的主人也幾易其手。在2008年,Sun 公司收購了 MySQL AB 公司,同時也獲得了 MySQL 數據庫的管理權。在 2010 年的時候,Oracle 公司收購了 Sun 公司,獲得了 MySQL 的管理權。而就在 Oracle 收購 Sun 公司的當天,因為擔心被 Oracle 收購后MySQL的前景會受到限制,被稱為 MySQL 之父的 Michael Widenius fork 了 MySQL 的一個分支,啟動了 MariaDB 項目。

果不其然,在被收購不久后,MySQL隨即推出了相關的收費版本。雖然原來的免費版本仍然可以使用,但在可預見的未來,Oracle 投入到 MySQL 中的精力可能很有限。畢竟Oracle是一個商業公司,也是要養家糊口的。

現在我們可以了解到現在主流關系型數據庫的誕生和發展概況,主要可以分為下面幾個階段:

  • 1979年,Oracle 數據庫誕生
  • 1989年,SQL Server 數據庫誕生
  • 1995年,MySQL 數據庫誕生

那這些關系型數據庫都有什么差異呢?

它們各自的適用場景又是哪些呢?

文章首發於微信公眾號「陳樹義」,專注於 Java 技術分享的社區。點擊鏈接掃描二維碼,與500位小伙伴一起共同進步。微信公眾號二維碼 http://p3npq6ecr.bkt.clouddn.com/blog/chenshuyi_gongzhonghao_guide_full.jpg

MySQL 與 Oracle 之間的恩怨

說到上面這三個數據庫,很多人的印象是 Oracle 很大,但是很難使用。MySQL 使用很方便,似乎是最好的選擇。SQL Server 是最沒有存在感的一個數據庫,基本上處於高不成低不就的狀態。

從 db-engines.com 網站關系型數據庫市場份額排名來看,現在市場份額最高的還是 Oracle 數據庫,MySQL 次之,接下來則是 SQL Server 數據庫。

上圖的排名似乎遠遠顛覆了我們的日常認知,因為在我們周邊貌似很少人使用Oracle,但為什么其市場份額能這么高呢?

任何事情都不可能空穴來風,Oracle能占有這么大市場份額是因為其在海量數據的處理上更具有優勢,並且能提供一整套的數據存儲解決方案。所以在一些非常大的企業里,這些企業擁有龐大的資金能力,所以它們會選擇用錢購買解決方案,而不是自己雇佣人員使用 MySQL 去維護。總的來說,Oracle比起MySQL具有下面的優點:

  • 眾多的數據庫特性,能滿足企業的多樣性需求
  • 海量數據處理的優勢
  • 一整套數據解決方案

但是 Oracle 的缺點也很明顯,那就是價格昂貴。

因為Oracle有上面這些特性,所以Oracle更加適合那些大型跨國企業。因為這些企業資金充足,能承擔得起Oracle的昂貴費用。另一方面,這些企業的數據量也是非常龐大,它們更注重數據的安全性和高效存儲,並且關心的出現問題的時候能快速解決,Oracle提供的一系列服務正好符合它們的需求。

而對於一些中小型企業或者個人使用者來說,一方面Oracle軟件非常笨重,另一方面Oracle授權費用昂貴,對於它們來說無法承受。而它們的數據庫又恰好不是特別大,所以對於這些使用者來說,使用MySQL已經能夠解決它們的需求了。那么也就無需去付費使用Oracle的數據庫了。

總結

如果單單是從數據庫性能來比較的話,那么Oracle數據庫無疑是天下第一、吊打MySQL的,畢竟Oracle比MySQL誕生早了10多年。但很多時候還是得結合具體的使用場景來做出合適的選擇,畢竟殺雞不用牛刀嘛,能不用錢解決的,為何要付費解決呢!

所以當你的數據量很大,並且你自身並不缺錢,那么你直接上Oracle吧!如果資金有限,數據量也不大,那么就用MySQL吧!

文章首發於微信公眾號「陳樹義」,專注於 Java 技術分享的社區。點擊鏈接掃描二維碼,與500位小伙伴一起共同進步。微信公眾號二維碼 http://p3npq6ecr.bkt.clouddn.com/blog/chenshuyi_gongzhonghao_guide_full.jpg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM