MySQL和SQL Server,到底選擇誰?[轉]
對於程式開發人員而言,目前使用最流行的兩種後臺資料庫即為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將是最好的選擇。