在現在對于程序開發(fā)人員來說,目前在java程序員的圈子里使用的兩種后臺數據庫即為MySQL和SQLServer。這兩者基本的相似之處在于數據存儲和屬于查詢系統(tǒng)。你可以使用sql來訪問這兩種數據庫的數據,因為它們都支持ansi-sql。 還有,這兩種數據庫系統(tǒng)都支持二進制關鍵詞和關鍵索引,這就大大地加快了查詢速度。同時,二者也都提供支持xml的各種格式。除了在顯而易見的軟件價格上的區(qū)別之外,這兩個產品還有什么明顯的區(qū)別嗎?在這二者之間你是如何選擇的?讓我們看看這兩個產品的主要的不同之處,包括發(fā)行費用,性能以及它們的安全性。
根本的區(qū)別是它們遵循的基本原則
二者所遵循的基本原則是它們的主要區(qū)別:開放vs保守。 SQLServer服務器的狹隘的,保守的存儲引擎與MySQL服務器的可擴展,開放的存儲引擎絕然不同。雖然你可以使用SQLServer服務器的 sybase引擎,但MySQL能夠提供更多種的選擇,如myisam, heap, innodb, and berkeley db。MySQL不完全支持陌生的關鍵詞,所以它比SQLServer服務器要少一些相關的數據庫。同時,MySQL也缺乏一些存儲程序的功能,比如 myisam引擎聯支持交換功能。
發(fā)行費用:MySQL不全是免費,但很便宜
當提及發(fā)行的費用,這兩個產品采用兩種絕然不同的決策。對于SQLServer服務器,獲取一個免費的開發(fā)費用常的方式是購買微軟的office或者visual studio的費用。但是,如果你想用于商業(yè)產品的開發(fā),你必須還要購買sql server standard edition。學?;蚍勤A利的企業(yè)可以不考慮這一附加的費用。
性能:先進的MySQL
純粹就性能而言,MySQL是相當出色的,因為它包含一個缺省桌面格式myisam。myisam 數據庫與磁盤非常地兼容而不占用過多的cpu和內存。MySQL可以運行于windows系統(tǒng)而不會發(fā)生沖突,在unix或類似unix系統(tǒng)上運行則更好。你還可以通過使用64位處理器來獲取額外的一些性能。因為MySQL在內部里很多時候都使用64位的整數處理。Yahoo!商業(yè)網站就使用MySQL 作為后臺數據庫。
當提及軟件的性能,SQLServer服務器的穩(wěn)定性要比它的競爭對手強很多。但是,這些特性也要付出代價的。比如,必須增加額外復雜操作,磁盤存儲,內存損耗等等。如果你的硬件和軟件不能充分支持SQLServer服務器,我建議你選擇其他如dbms數據庫,因為這樣你會得到更好的結果。
安全功能
MySQL有一個用于改變數據的二進制日志。因為它是二進制,這一日志能夠快速地從主機上復制數據到客戶機上。即使服務器崩潰,這一二進制日志也會保持完整,而且復制的部分也不會受到損壞。
在 SQLServer服務器中,你也可以記錄SQLServer的有關查詢,但這需要付出很高的代價。
安全性
這兩個產品都有自己完整的安全機制。只要你遵循這些安全機制,一般程序都不會出現什么問題。這兩者都使用缺省的ip端口,但是有時候很不幸,這些ip也會被一些黑客闖入。當然,你也可以自己設置這些ip端口。
恢復性:先進的sql服務器
恢復性也是 MySQL的一個特點,這主要表現在myisam配置中。這種方式有它固有的缺欠,如果你不慎損壞數據庫,結果可能會導致所有的數據丟失。然而,對于 SQLServer服務器而言就表現得很穩(wěn)鍵。SQLServer服務器能夠時刻監(jiān)測數據交換點并能夠把數據庫損壞的過程保存下來。
根據需要決定你的選擇
對于這兩種數據庫,如果非要讓我說出到底哪一種更加出色,也許我會讓你失望。以我的觀點,任一對你的工作有幫助的數據庫都是很好的數據庫,沒有哪一個數據庫是的出色,也沒有哪一個數據庫是的差勁。我想要告訴你的是你應該多從你自己的需要出發(fā),即你要完成什么樣的任務?而不要單純地從軟件的功能出發(fā)。
如果你想建立一個.net服務器體系,這一體系可以從多個不同平臺訪問數據,參與數據庫的管理,那么你可以選用SQLServer服務器。如果你想建立一個第三方站點,這一站點可以從一些客戶端讀取數據,那么MySQL將是的選擇。
這兩者數據庫都能夠在.net或j2ee下運行正常,同樣,都能夠利用raid。
===========================
ORACLE、 SQLSERVER、MYSQL與DB2的比較
以下被引用:ORACLE 大型,完善,安全
SQLSERVER 簡單,界面友好,WINDOWS平臺下的好選擇
MYSQL 免費,功能不錯
DB2 超大型,與ORACLE類似
以下被引用:ORACLE 大型,完善,安全
SQLSERVER 簡單,界面友好,WINDOWS平臺下的好選擇
MYSQL 免費,功能不錯
DB2 超大型,與ORACLE類似
以下被引用:oracle:數據完整性,安全性要求較高的場合;
sqlserver(sybase和ms):ms的sqlserver簡單,好用,用于企業(yè)級的數據應用,性能沒有問題,支持所有大型 rdbms的特性;
mysql:基本免費,適合個人網站及一些小企業(yè)的網站應用;
db2:大型數據庫,特長在于信息的存取。
以下被引用:Oracle 適用于較大型系統(tǒng),但上手比較困難,即便上手后也很難提高。需要有長期的實踐和摸索,但確實比較適合大系統(tǒng)。備份與恢復比較完善,但必需很有經驗才能做的比較好。數據量不超過1T,可以用它
SqlServer:個人認為MS平臺下用的數據庫。界面簡單友好,操作方便,備份與恢復都比較容易學會。而且學會SqlServer后與SYbase也比較接近的。
MYSQL以前學PHP用的,感覺比較簡單,無論是上手還是其本身的功能。
DB2 我在AS/400上和MS平臺都用過,感覺就是非常嚴謹,必須有非常規(guī)范的操作。如果數據量超過百G,建議用它。
以下被引用:oracle其實已經沒有什么可以夸耀的了,看看他今年的業(yè)績也就知道了。他的技術現在就連微軟都能實現了,從技術上看實在是沒有什么理由值得采用
DB2 的數據倉庫還是相當出色,數據挖掘也很不錯,特別是集群技術可以使DB2的可擴性能達到??纯唇衲甑臉I(yè)績就知道DB2的優(yōu)勢了,當然它的價格比其他的略貴,不過還是可以接受,至少遠遠低于oracle的價格
Sybase已經快要消亡了,現在很少有新系統(tǒng)會采用這個東西了,反正我現在的公司已經放棄這個了
MySQL不錯的東東,強烈推薦,但是用起來實在是另類,比如沒有存儲過程,如果不考慮集群,其實他的效率要遠遠高于oracle
SQL Server微軟的東西,用起來感覺還不錯,但是因為不能使用在UNIX上,所以企業(yè),電信,政府都不是很愿意用。如果不是做ERP不要用這個東西,否則產品可能會買不出去
sqlserver與oracle的區(qū)別
Oracle可在所有主流平臺上運行。
SQL Server只能在Windows下運行
著信息技術的飛速發(fā)展,數據處理不僅在數量上要求越來越大,而且在質量上也要求越來越高。Oracle數據庫在大多數企業(yè)中受到廣泛使用,而SQL Server數據庫也因為和Windows的聯系,在企業(yè)中的使用也是非常廣泛。
操作系統(tǒng)的穩(wěn)定對數據庫來說是十分緊要的,在數據庫可操作平臺上,Oracle可在所有主流平臺上運行,Oracle數據庫采用開放的策略目標,它使得客戶可以選擇一種適合他們特定需要的解決方案??蛻艨梢岳煤芏喾N第三方應用程序、工具。對開發(fā)商來說是很大的支持。而SQL Server卻只能在Windows上運行了,這個就顯得比較單調了,但SQL Sever在Window平臺上的表現,和Windows操作系統(tǒng)的整體結合程度,使用方便性,和Microsoft開發(fā)平臺的整合性都比Oracle強的很多。但Windows操作系統(tǒng)的穩(wěn)定性及可靠性大家是有目共睹的,再說Microsoft公司的策略目標是將客戶都鎖定到Windows平臺的環(huán)境當中,只有隨著Windows性能的改善,SQL
Server才能進一步提高。從操作平臺這點上Oracle是完全優(yōu)勝于SQL Server的了。
從資料上可以看到,Oracle的安全認證獲得認證級別的ISO標準認證,而SQL Server并沒有獲得什么安全認證。這方面證明了Oracle的安全性是高于SQL Server的。
購買一個產品,首先考慮的當然是產品的性能了,當考慮性能的同時當然少不了究竟要花多少錢在這產品也是個很關鍵的問題。要建立并運行一個數據庫系統(tǒng)。不僅僅包含初購置軟件、硬件的費用,還包含了培訓及以后維護的費用。Orcale數據庫的價格是遠比SQL Server數據庫要高,為什么Oracle數據庫比SQL Server數據庫價格上要高出那么多,一方面Oracle的初始花費相對較高,特別是在考慮工具軟件的時候,Oracle很多工具軟件需要另外購買,與 Microsoft提供免費的SQL Server工具軟件相比,Oracle更顯價格的不菲。但由于SQL
Server只能在Windows下運行的原因,普遍認為SQL Server數據庫的可靠性是比較差的。Oracle的性能優(yōu)勢體現在他的多用戶上,而SQL Server的性能優(yōu)勢在多用戶上就顯得力不從心了。
操作上SQL Server明顯要比Orcale簡單,如果你用過Java和DOTNET的開發(fā)平臺,區(qū)別的基本就是Oracle和SQL Server不同,Oracle的界面基本是基于Java的,大部分的工具是Dos界面的,甚至SQLPlus也是, SQL Server是跟VB一樣,全圖形界面,很少見到DOS窗口。SQL Server中的企業(yè)管理器給用戶提供一個全圖形界面的集成管理控制臺來集中管理多個服務器。Oracle也有自己的企業(yè)管理器,而且它的性能在某些方面甚至超過了SQL Server的企業(yè)管理器,但它安裝較為困難。
Orcale數據庫和SQL Server數據庫那個更快?其實是一個很難答的問題,因為存在許多不定因素,包括處理類型、數據分布以及硬件基礎設施等。
SQL Server 2000是一個具備完全Web支持的數據庫產品,提供了可擴展標記語言核心支持以及Internet上和防火墻外進行查詢的能力,具有可伸縮性、靈活性、擴充性好,而且價格便宜等特點,而Oracle則有著可靠安全性,速度比SQL Server快上百倍,但其價格在實施中卻比SQL Server它高出了幾百倍。
其實各行業(yè)考慮選擇那種數據庫,是由數據庫的特點以及根據自己的業(yè)務需求和基礎設施綜合考慮來決定的。
oracle中有復合數據類型 sql server中沒有
聲明方式:變量名 對象名%type
這里的變量類型可以是所有以存在的數據類型,具有依賴性 ,存儲過程中用這種變量比較靈活,但效率應該會低些
oracle存儲過程中借助cursor類型變量返回并訪問記錄集 sql server中我沒用過類似功能
oracle里這么用:存儲過程中邊查詢邊給變量賦值
select 某一列名 into 變量名 from table where ..;
相當于oracle中的select 變量名=列....
想了解到更多的java技術那就加入我們吧!