對於程序開發人員而言,目前使用最流行的兩種後台數據庫即為MySQL and SQL Server。這兩者最基本的相似之處在於數據存儲和屬於查詢系統。你可以使用SQL來訪問這兩種數據庫的數據,因為它們都支持ANSI-SQL。還有,這兩種數據庫系統都支持二進制關鍵詞和關鍵索引,這就大大地加快了查詢速度。同時,二者也都提供支持XML的各種格式。
除了在顯而易見的軟件價格上的區別之外,這兩個產品還有什麼明顯的區別嗎?在這二者之間你是如何選擇的?讓我們看看這兩個產品的主要的不同之處,包括發行費用,性能以及它們的安全性。
根本的區別是它們遵循的基本原則 二者所遵循的基本原則是它們的主要區別:開放vs保守。SQL服務器的狹隘的,保守的存儲引擎與MySQL服務器的可擴展,開放的存儲引擎絕然不同。雖然你可以使用SQL服務器的Sybase引擎,但MySQL能夠提供更多種的選擇,如MyISAM, Heap, InnoDB, and Berkeley DB。MySQL不完全支持陌生的關鍵詞,所以它比SQL服務器要少一些相關的數據庫。同時,MySQL也缺乏一些存儲程序的功能,比如MyISAM引擎聯支持交換功能。
發行費用:MySQL不全是免費,但很便宜 當提及發行的費用,這兩個產品采用兩種絕然不同的決策。對於SQL服務器,獲取一個免費的開發費用最常的方式是購買微軟的Office或者Visual Studio的費用。但是,如果你想用於商業產品的開發,你必須還要購買SQL Server Standard Edition。學校或非贏利的企業可以不考慮這一附加的費用。
性能:先進的MySQL 純粹就性能而言,MySQL是相當出色的,因為它包含一個缺省桌面格式MyISAM。MyISAM 數據庫與磁盤非常地兼容而不占用過多的CPU和內存。MySQL可以運行於Windows系統而不會發生沖突,在UNIX或類似UNIX系統上運行則更好。你還可以通過使用64位處理器來獲取額外的一些性能。因為MySQL在內部裡很多時候都使用64位的整數處理。Yahoo!商業網站就使用MySQL作為後台數據庫。
當提及軟件的性能,SQL服務器的穩定性要比它的競爭對手強很多。但是,這些特性也要付出代價的。比如,必須增加額外復雜操作,磁盤存儲,內存損耗等等。如果你的硬件和軟件不能充分支持SQL服務器,我建議你最好選擇其他如DBMS數據庫,因為這樣你會得到更好的結果。
這兩者數據庫都能夠在.Net或J2EE下運行正常,同樣,都能夠利用RAID。
安全功能 MySQL有一個用於改變數據的二進制日志。因為它是二進制,這一日志能夠快速地從主機上復制數據到客戶機上。即使服務器崩潰,這一二進制日志也會保持完整,而且復制的部分也不會受到損壞。
在SQL服務器中,你也可以記錄SQL的有關查詢,但這需要付出很高的代價。
安全性 這兩個產品都有自己完整的安全機制。只要你遵循這些安全機制,一般程序都不會出現什麼問題。這兩者都使用缺省的IP端口,但是有時候很不幸,這些IP也會被一些黑客闖入。當然,你也可以自己設置這些IP端口。
恢復性:先進的SQL服務器 恢復性也是MySQL的一個特點,這主要表現在MyISAM配置中。這種方式有它固有的缺欠,如果你不慎損壞數據庫,結果可能會導致所有的數據丟失。然而,對於SQL服務器而言就表現得很穩鍵。SQL服務器能夠時刻監測數據交換點並能夠把數據庫損壞的過程保存下來。
根據需要決定你的選擇 對於這兩種數據庫,如果非要讓我說出到底哪一種更加出色,也許我會讓你失望。以我的觀點,任一對你的工作有幫助的數據庫都是很好的數據庫,沒有哪一個數據庫是絕對的出色,也沒有哪一個數據庫是絕對的差勁。我想要告訴你的是你應該多從你自己的需要出發,即你要完成什麼樣的任務?而不要單純地從軟件的功能出發。
如果你想建立一個.Net服務器體系,這一體系可以從多個不同平台訪問數據,參與數據庫的管理,那麼你可以選用SQL服務器。如果你想建立一個第三方站點,這一站點可以從一些客戶端讀取數據,那麼MySQL將是最好的選擇。