sybase與myslcy的數據庫比較



SQL,在這裏我理解成SQL Server。三者是目前市場佔有率最高(依安裝量而非收入)的關係數據庫,而且很有代表性。排行第四的DB2(屬IBM公司),與Oracle的定位和架構非常相似,就不贅述了。

  1. 如果要說明三者的區別,首先就要從歷史入手。

    1. Oracle:中文譯作甲骨文,這是一家傳奇的公司,有一個傳奇的大老闆Larry Ellision。 Ellision 32歲還一事無成,讀了三個大學,沒得到一個學位文憑,換了十幾家公司,老婆也離他而去。開始創業時只有1200美元,卻使得Oracle公司連續12年銷售額每年翻一番。
      Oracle成立於1977年,早期的理論基礎,反而來自於一篇IBM的論文《A Relational Model of Data for Large Shared Data Banks》【1】。作者CODD選取了關係代數的五種運算,並基於運算,架構了一種新型的數據存儲模型。基於這種模型,Oracle成爲了一個非常典型的關係數據庫。因此也變的嚴謹、安全、高速、穩定,並且變的越來越龐大。
      由於其誕生早、結構嚴謹、高可用、高性能等特點,使其在傳統數據庫應用中大殺四方,金融、通信、能源、運輸、零售、製造等各個行業的大型公司基本都是用了Oracle,早些年的時候,世界500強幾乎100%都是Oracle的用戶。

    2. MySQL :MySQL的最初的核心思想,主要是開源、簡便易用。其開發可追溯至1985年,而第一個內部發行版本誕生,已經是1995年。到1998年,MySQL已經可以支持10中操作系統了,其中就包括win平臺。但依然問題多多,如不支持事務操作、子查詢 、外鍵、存儲過程和視圖等功能。下圖是一個截止至2006年的數據庫市場佔有率【2】:
      <img src="https://pic4.zhimg.com/e3b780fc23cec291be3159fe91e4fc3b_b.jpg" data-rawwidth="485" data-rawheight="255" class="origin_image zh-lightbox-thumb" width="485" data-original="https://pic4.zhimg.com/e3b780fc23cec291be3159fe91e4fc3b_r.jpg">圖中可以看出,MySQL的爆發實際是在01、02年,尤其是02年發佈的4.0 Beta版,正式選定InnoDB作爲默認引擎,對事務處理能力及數據緩存能力有了極大的提高。同年4.1版開始支持子查詢,至此MySQL終於蛻變成一個成熟的關係型數據庫系統。05年的5.0版本又添加了存儲過程、服務端遊標、觸發器、查詢優化以及分佈式事務功能,但同年被Oracle抄了後路,InnoDB被Oracle收編。08年,MySQL被Sun收購,09年,Oracle收購了Sun和MySQL。
      由於MySQL的早期定位,其主要應用場景就是互聯網開發。基本上,互聯網的爆發成就了MySQL,LAMP架構風靡天下。而由於MySQL更多的的追求輕量、易用,以及早期的事物操作及複雜查詢優化的缺失,在傳統的數據庫應用場景中,份額極少。

    3. SQL Server:一提到SQL Server,大家一般都只想到Microsoft SQL Server,而非Sybase SQL Server。SQL Server最初是由Microsoft, Sybase and Ashton-Tate三家公司攔下的生意,是爲IBM(又出現了)公司的OS/2操作系統開發的。隨着OS/2項目的失敗,大家也分道揚鑣。 Microsoft自然轉向自己的win操作系統,作爲windows NT軟件方案的一部分。而Sybase則專注於Linux/Unix方向的數據庫開發。
      MS SQL Server主要面向中小企業。其最大的優勢就是在於集成了MS公司的各類產品及資源,提供了強大的可視化界面、高度集成的管理開發工具,在快速構建商業智能(BI)方面頗有建樹。 MS SQL Server是MS公司在軟件集成方案中的重要一環,也爲WIN系統在企業級應用中的普及做出了很大貢獻。

  2. 典型應用場景
    關於“大型數據庫”,並沒有嚴格的界定,有說以數據量爲準,有說以恢復時間爲準。如果綜合數據庫應用場景來說,大型數據庫應用有以下特點:海量數據、高吞吐量;複雜邏輯、高計算量,以及高可用性。從這點上來說,Oracle,DB2就是比較典型的大型數據庫,Sybase SQL Server也算是吧。下面分別說明之前三種數據庫的應用場景。

    1. Oracle。Oracle的應用,主要在傳統行業的數據化業務中,比如:銀行、金融這樣的對可用性、健壯性、安全性、實時性要求極高的業務;零售、物流這樣對海量數據存儲分析要求很高的業務。此外,高新製造業如芯片廠也基本都離不開Oracle;電商也有很多使用者,如京東(正在投奔Oracle)、阿里巴巴(計劃去Oracle化)。而且由於Oracle對複雜計算、統計分析的強大支持,在互聯網數據分析、數據挖掘方面的應用也越來越多。一個典型場景是這樣的:
      某電信公司(非國內)下屬某分公司的數據中心,有4臺Oracle Sun的大型服務器用來安裝Solaris操作系統和Oracle並提供計算服務,3臺Sun Storage磁盤陣列來提供Oracle數據存儲,12臺IBM小型機,一臺Oracle Exadata服務器,一臺500T的磁帶機用來存儲歷史數據,San連接內網,使用Tuxedo中間件來保證擴展性和無損遷移。建立支持高併發的Oracle數據庫,通過OLTP系統用來對海量數據實時處理、操作,建立高運算量的Oracle數據倉庫,用OLAP系統用來分析營收數據及提供自動報表。總預算約750萬美金。

    2. MySQL。MySQL基本是生於互聯網,長於互聯網。其應用實例也大都集中於互聯網方向,MySQL的高併發存取能力並不比大型數據庫差,同時價格便宜,安裝使用簡便快捷,深受廣大互聯網公司的喜愛。並且由於MySQL的開源特性,針對一些對數據庫有特別要求的應用,可以通過修改代碼來實現定向優化,例如SNS、LBS等互聯網業務。一個典型的應用場景是:
      某互聯網公司,成立之初,僅有PC數臺,通過LAMP架構迅速搭起網站框架。隨着業務擴張、市場擴大,迅速發展成爲6臺Dell小型機的中型網站。現在花了三年,終於成爲垂直領域的最大網站,計劃中的數據中心,擁有Dell機架式服務器40臺,總預算20萬美金。

    3. MS SQL Server。windows生態系統的產品,好處壞處都很分明。好處就是,高度集成化,微軟也提供了整套的軟件方案,基本上一套win系統裝下來就齊活了。因此,不那麼缺錢,但很缺IT人才的中小企業,會偏愛 MS SQL Server 。例如,自建ERP系統、商業智能、垂直領域零售商、餐飲、事業單位等等。
      1996年,Bill Gates親自出手,從Borland挖來了大牛Anders,搞定了C#語言。微軟02年搞定了。成熟的.NET、Silverlight技術,爲 MS SQL Server贏得了部分互聯網市場,其中就有曾經的全球最大社交網站MySpace,其發展歷程很有代表性,可作爲一個比較特別的例子【3】。其巔峯時有超過1.5億的註冊用戶及每月400億的訪問量。應該算是MS SQL Server支撐的最大的數據應用了。

  3. 架構。其實要說執行的區別,主要還是架構的區別。正是架構導致了相同SQL在執行過程中的解釋、優化、效率的差異。這裏只做粗略說明,就不細說了:

    1. Oracle: 數據文件包括:控制文件、數據文件、重做日誌文件、參數文件、歸檔文件、密碼文件。這是根據文件功能行進行劃分,並且所有文件都是二進制編碼後的文件,對數據庫算法效率有極大的提高。由於Oracle文件管理的統一性,就可以對SQL執行過程中的解析和優化,指定統一的標準:
      RBO(基於規則的優化器)、CBO(基於成本的優化器)
      通過優化器的選擇,以及無敵的HINT規則,給與了SQL優化極大的自由,對CPU、內存、IO資源進行方方面面的優化。

    2. MySQL:最大的一個特色,就是自由選擇存儲引擎。每個表都是一個文件,都可以選擇合適的存儲引擎。常見的引擎有 InnoDB、 MyISAM、 NDBCluster等。但由於這種開放插件式的存儲引擎,比如要求數據庫與引擎之間的鬆耦合關係。從而導致文件的一致性大大降低。在SQL執行優化方面,也就有着一些不可避免的瓶頸。在多表關聯、子查詢優化、統計函數等方面是軟肋,而且只支持極簡單的HINT。

    3. SQL Server :數據架構基本是縱向劃分,分爲:Protocol Layer(協議層), Relational Engine(關係引擎), Storage Engine(存儲引擎), SQLOS。SQL執行過程就是逐層解析的過程,其中Relational Engine中的優化器,是基於成本的(CBO),其工作過程跟Oracle是非常相似的。在成本之上也是支持很豐富的HINT,包括:連接提示、查詢提示、表提示。

      鄭州×××醫院:https://yyk.familydoctor.com.cn/12248/鄭州×××醫院×××:https://yyk.familydoctor.com.cn/12248/鄭州×××多少錢:https://yyk.familydoctor.com.cn/12248/鄭州同濟×××醫院:https://yyk.familydoctor.com.cn/12248/

        鄭州婦科醫院:https://yyk.familydoctor.com.cn/21206/鄭州人流醫院×××:https://yyk.familydoctor.com.cn/21206/鄭州看婦科那家好:https://yyk.familydoctor.com.cn/21206/鄭州同濟婦科醫院:https://yyk.familydoctor.com.cn/21206/

        鄭州不孕不育醫院:http://jbk.39.net/yiyuanzaixian/zztjyy/同濟不孕不育研究院:http://jbk.39.net/yiyuanzaixian/zztjyy/鄭州治療不孕不育×××:http://jbk.39.net/yiyuanzaixian/zztjyy/鄭州哪家不孕不育醫院好:http://jbk.39.net/yiyuanzaixian/zztjyy/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章