My SQL 和SQL Server區別

MySQL 與SQL Server區別php

 今天瞭解了兩者區別,整理網上查閱資料,總結列舉以下:html

 

     MSSQL == SQL server 是sybase與微軟合做時期的產物。sql

 

       對於程序開發人員而言,目前使用最流行的兩種後臺數據庫即爲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不全是免費,但很便宜app

    對於SQL服務器,獲取一個免費的開發費用最常的方式是購買微軟的Office或者Visual  Studio的費用。可是,若是你想用於商業產品的開發,你必須還要購買SQL Server Standard  Edition。學校或非贏利的企業能夠不考慮這一附加的費用。ide

 

性能比較:先進的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將是最好的選擇。

 

以上內容來自於

https://zhidao.baidu.com/question/448228243.html?fr=iks&word=MSSQL%D3%EBMySQL%C7%F8%B1%F0&ie=gbk 對做者表示感謝

 

兩者詳細支持區別列舉以下:

1 MySQL支持enum,和set類型,SQL Server不支持
2 MySQL不支持nchar,nvarchar,ntext類型
3 MySQL的遞增語句是AUTO_INCREMENT,而MS SQL是identity(1,1)
4 MS SQL默認處處表建立語句的默認值表示是((0)),而在MySQL裏面是不容許帶兩括號的
5 MySQL須要爲表指定存儲類型
6 MS SQL識別符是[],[type]表示他區別於關鍵字,可是MySQL倒是 `,也就是按鍵1左邊的那個符號
7 MS SQL支持getdate()方法獲取當前時間日期,可是MySQL裏面能夠分日期類型和時間類型,獲取當前日期是cur_date(),當前完整時間是 now()函數
8 MS SQL不支持replace into 語句,可是在最新的sql20008裏面,也支持merge語法
9 MySQL支持insert into table1 set t1 = ‘’, t2 = ‘’ ,可是MS SQL不支持這樣寫
10 MySQL支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
11 MS SQL不支持limit語句,是很是遺憾的,只能用top 取代limt 0,N,row_number() over()函數取代limit N,M
12 MySQL在建立表時要爲每一個表指定一個存儲引擎類型,而MS SQL只支持一種存儲引擎
13 MySQL不支持默認值爲當前時間的datetime類型(MS SQL很容易作到),在MySQL裏面是用timestamp類型
14 MS SQL裏面檢查是否有這個表再刪除,須要這樣:
if exists (select *   from   dbo.sysobjects   where  id = object_id(N'uc_newpm') and OBJECTPROPERTY(id,N'IsUserTable')=1)可是在MySQL裏面只須要 DROP TABLE IF EXISTS cdb_forums;
15 MySQL支持無符號型的整數,那麼比不支持無符號型的MS SQL就能多出一倍的最大數存儲
16 MySQL不支持在MS SQL裏面使用很是方便的varchar(max)類型,這個類型在MS SQL裏面既可作通常數據存儲,也能夠作blob數據存儲
17 MySQL建立非彙集索引只須要在建立表的時候指定爲key就行,好比:KEY displayorder (fid,displayorder) 在MS SQL裏面必需要:
create unique nonclustered indexindex_uc_protectedmembers_username_appid on dbo.uc_protectedmembers(username asc,appid asc)
18 MySQL text字段類型不容許有默認值
19MySQL的一個表的總共字段長度不超過65XXX。
20一個很表面的區別就是MySQL的安裝特別簡單,並且文件大小才110M(非安裝版),相比微軟這個龐然大物,安裝進度來講簡直就是.....
21MySQL的管理工具備幾個比較好的,MySQL_front,和官方那個套件,不過都沒有SSMS的使用方便,這是MySQL很大的一個缺點。
22MySQL的存儲過程只是出如今最新的版本中,穩定性和性能可能不如MS SQL。
23 一樣的負載壓力,MySQL要消耗更少的CPU和內存,MS SQL的確是很耗資源。
24 php鏈接MySQL和MS SQL的方式都差很少,只須要將函數的MySQL替換成MS SQL便可。
25 MySQL支持date,time,year類型,MS SQL到2008才支持date和time。

 

兩者詳細支持區別列舉來自於https://zhidao.baidu.com/question/250454051.html?loc_ans=665059610 對做者表示感謝

相關文章
相關標籤/搜索