鑑於和數據庫打交道日益頻繁,遂決定寫一篇關於Oracle、SqlServer、MySQL區別的我的觀點。
MySQL是大學時的主要學習對象,但剛參加工做時轉到了SqlServer,如今主要接觸的是Oracle,因爲其餘數據庫(例如DB2等)我並沒用過,就不說起了。
事先說明:不必定對,歡迎指正,不吹不黑,不要罵我。
sql
所屬公司:
MySQL是由瑞典MySQL AB公司開發,目前屬於 Oracle 旗下產品;
Oracle是由美國ORACLE公司(甲骨文)開發的一組核心軟件產品;
SqlServer是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,目前主屬Microsoft;
sql語句的靈活性:
MySQL對sql語句更靈活,好比:limit功能,insert能夠一次插入多行數據,select某些管理數據能夠不加from;
oracle對sql語句的感受更加穩重傳統一些;
SqlServer對sql語句那絕了,兩個成語歸納:腳踏實地,步步爲營;
保存數據的持久性:
MySQL是在數據庫更新或者重啓,則會丟失數據;
Oracle把提交的sql操做線寫入了在線聯機日誌文件中,保持到了磁盤上,能夠隨時恢復;
SqlServer從2014以後,也擁有了徹底持久和延遲持久特性;
提交方式:
MySQL默認是自動提交(變量autocommit爲ON);
oracle默認不自動提交,須要用戶手動提交(commit);
SqlServer默認是自動提交,用戶可手動中止(KILL);
對事務的支持:
MySQL在innodb存儲引擎的行級鎖的狀況下才可支持事務;
Oracle則徹底支持事務;
SqlServer在非自動提交時纔可支持事務;
對併發性的支持:
MySQL以表級鎖(行級鎖依賴於表索引)爲主,若是一個session的加鎖時間過長,會讓其餘session沒法更新此表中的數據,即「悲觀併發控制」;
Oracle使用行級鎖,對資源鎖定的粒度要小不少,而且不依賴索引,對併發性的支持要好不少,即「樂觀併發控制」;
SqlServer在表、表的分頁、索引鍵以及單獨的數據行上支配共享鎖、排它鎖、以及更新鎖,簡單地說:讀取時用共享鎖,修改時用排它鎖,更新鎖則是共享鎖和排他鎖的一種混合;
邏輯備份:
MySQL邏輯備份時要鎖定數據,才能保證備份的數據是一致的,會影響正常業務;
Oracle邏輯備份時不鎖定數據,且備份的數據是一致;
SqlServer邏輯備份時要鎖定數據,才能保證備份的數據是一致的,會影響正常業務;
複製備份:
MySQL複製服務器配置簡單,但主庫出問題時,叢庫有可能丟失必定的數據;
Oracle既有推或拉式的傳統數據複製,也有dataguard的雙機或多機容災機制,還有成熟的熱備工具rman,主庫出現問題時,能夠自動切換備庫到主庫,但配置管理較複雜;
SqlServer的僅複製備份是獨立於常規SQL Server備份序列的SQL Server備份。一般,進行備份會更改數據庫並影響其後備份的還原方式。只用於:在不影響數據庫整體備份和還原過程的狀況下,爲特殊目的而進行的備份。
性能診斷:
MySQL的診斷調優方法較少,主要有慢查詢日誌;
Oracle有各類成熟的性能診斷調優工具,能實現不少自動分析、診斷功能。好比awr、addm、sqltrace、tkproof等;
SqlServer性能檢測工具備sql server profiler,性能調優工具備數據庫引擎優化顧問,簡單好用還炫酷;
權限與安全:
MySQL的用戶與主機有關,更容易被仿冒主機及ip,有可乘之機,沒什麼意義;
Oracle的用戶和root用戶權限彼此分離,權限與安全概念比較傳統,中規中矩;
SqlServer本機可用windows驗證登陸,遠程則用SqlServer驗證登陸(即sa登陸);
相關服務:
MySQL是輕量型數據庫,而且免費開源,沒有服務恢復數據;
Oracle是重量型數據庫,收費,Oracle公司對Oracle數據庫有任何服務;
SqlServer是重量型數據庫,收費(與Java有合做),也有支持供應商;
總結得出:
MySQL優勢:體積小、速度快、整體擁有成本低,開放源碼,搭配「L(Linux)A(Apache)M(MySQL)P(PHP/Perl/Python)「或「LN(Nginx)MP」就能夠創建起一個穩定、免費的網站系統,適合中小型網站。
Oracle優勢:使用方便、功能強大,可靠性好、安全性好、可移植性好、適應高吞吐量,適用於各種大、中、小、微機環境。
SqlServer優勢:圖形化用戶界面,豐富的編程接口工具,與Windows NT徹底集成,支持分佈式的分區視圖,適用於Win的Web技術的開發。
因此理性來說,
這三個數據庫各有所長。
用哪一個數據庫,徹底取決你須要什麼功能和服務。
固然啦,
也取決你有沒有錢買你想要的服務。 (:ι」∠)數據庫