MySQL、Oracle、SqlServer數據庫的區別

引用:https://www.cnblogs.com/WoLykos/p/11752813.html

鑑於和數據庫打交道日益頻繁,遂決定寫一篇關於Oracle、SqlServer、MySQL區別的個人觀點。
MySQL是大學時的主要學習對象,但剛參加工作時轉到了SqlServer,現在主要接觸的是Oracle,由於其他數據庫(例如DB2等)我並沒用過,就不提及了。
 
事先說明:不一定對,歡迎指正,不吹不黑,不要罵我。

  • 所屬公司:

    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技術的開發。

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