檢索06 - Oracle MySql SqlSever之間的區別和優缺點

 

 

 

                                                                 三者之間區別mysql

  • 歷史

  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平臺。但依然問題多多,如不支持事務操做、子查詢 、外鍵、存儲過程和視圖等功能。MySQL的爆發實際是在0一、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系統在企業級應用中的普及作出了很大貢獻。sql

 

  • 典型應用場景

 

  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支撐的最大的數據應用了。windows

 

  • 架構  

 

  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,包括:鏈接提示、查詢提示、表提示。安全

(注:轉自http://www.zhihu.com/question/19866767    及 http://blog.csdn.net/you1314520me/article/details/11907715)

 

                                                                            各自優缺點

1、sqlserver
優勢:
易用性、適合分佈式組織的可伸縮性、用於決策支持的數據倉庫功能、與許多其餘服務器軟件緊密關聯的集成性、良好的性價比等;
爲數據管理與分析帶來了靈活性,容許單位在快速變化的環境中從容響應,從而得到競爭優點。從數據管理和分析角度看,將原始數據轉化爲商業智能和充分利用Web帶來的機會很是重要。做爲一個完備的數據庫和數據分析包,SQLServer爲快速開發新一代企業級商業應用程序、爲企業贏得核心競爭優點打開了勝利之門。做爲重要的基準測試可伸縮性和速度獎的記錄保持者,SQLServer是一個具有徹底Web支持的數據庫產品,提供了對可擴展標記語言 (XML)的核心支持以及在Internet上和防火牆外進行查詢的能力;

缺點:
開放性 :SQL Server 只能windows上運行沒有絲毫開放性操做系統系統穩定對數據庫十分重要Windows9X系列產品偏重於桌面應用NT server只適合小型企業並且windows平臺靠性安全性和伸縮性很是有限象unix樣久經考驗尤爲處理大數據庫;
伸縮性並行性 :SQL server 並行實施和共存模型併成熟難處理日益增多用戶數和數據卷伸縮性有限;
安全性:沒有得到任何安全證書。
性能 :SQL Server 多用戶時性能佳 ;
客戶端支持及應用模式: 客戶端支持及應用模式。只支持C/S模式,SQL Server C/S結構只支持windows客戶用ADO、DAO、OLEDB、ODBC鏈接;
使用風險:SQL server 徹底重寫代碼經歷了長期測試斷延遲許多功能須要時間來證實並十分兼容;
2、Oracle
優勢:
開放性:Oracle 能全部主流平臺上運行(包括 windows)徹底支持全部工業標準採用徹底開放策略使客戶選擇適合解決方案對開發商全力支持;
可伸縮性,並行性:Oracle 並行服務器經過使組結點共享同簇工做來擴展windownt能力提供高用性和高伸縮性簇解決方案windowsNT能知足須要用戶把數據庫移UNIXOracle並行服務器對各類UNIX平臺集羣機制都有着至關高集成度;
安全性:得到最高認證級別的ISO標準認證。 
性能:Oracle 性能高 保持開放平臺下TPC-D和TPC-C世界記錄;
客戶端支持及應用模式:Oracle 多層次網絡計算支持多種工業標準用ODBC、JDBC、OCI等網絡客戶鏈接
使用風險:Oracle 長時間開發經驗徹底向下兼容得普遍應用地風險低

缺點:
對硬件的要求很高;
價格比較昂貴;
管理維護麻煩一些;
操做比較複雜,須要技術含量較高;

3、MySql
優勢:
體積小、速度快、整體擁有成本低,開源;
支持多種操做系統;
是開源數據庫,提供的接口支持多種語言鏈接操做
MySql的核心程序採用徹底的多線程編程。線程是輕量級的進程,它能夠靈活地爲用戶提供服務,而不過多的系統資源。用多線程和C語言實現的MySql能很容易充分利用CPU;
MySql有一個很是靈活並且安全的權限和口令系統。當客戶與MySql服務器鏈接時,他們之間全部的口令傳送被加密,並且MySql支持主機認證;
支持ODBC for Windows, 支持全部的ODBC 2.5函數和其餘許多函數, 能夠用Access鏈接MySql服務器, 使得應用被擴展;
支持大型的數據庫, 能夠方便地支持上千萬條記錄的數據庫。做爲一個開放源代碼的數據庫,能夠針對不一樣的應用進行相應的修改。
擁有一個很是快速並且穩定的基於線程的內存分配系統,能夠持續使用面沒必要擔憂其穩定性;
MySQL同時提供高度多樣性,可以提供不少不一樣的使用者介面,包括命令行客戶端操做,網頁瀏覽器,以及各式各樣的程序語言介面,例如C+,Perl,Java,PHP,以及Python。你可使用事先包裝好的客戶端,或者乾脆本身寫一個合適的應用程序。MySQL可用於Unix,Windows,以及OS/2等平臺,所以它能夠用在我的電腦或者是服務器上;

缺點:
不支持熱備份;
MySQL最大的缺點是其安全系統,主要是複雜而非標準,另外只有到調用mysqladmin來重讀用戶權限時才發生改變;
沒有一種存儲過程(Stored Procedure)語言,這是對習慣於企業級數據庫的程序員的最大限制;
MySQL的價格隨平臺和安裝方式變化。Linux的MySQL若是由用戶本身或系統管理員而不是第三方安裝則是免費的,第三方案則必須付許可費。Unix或Linux 自行安裝 免費 、Unix或Linux 第三方安裝 收費;

(注 : 轉自http://www.jb51.net/article/48206.htm)

相關文章
相關標籤/搜索