SQL Server 與 MySQL 性能相差多大?

伺服器配置相同,生產環境相同。SQL Server 與 MySQL 的性能相差大概有多大?


關係資料庫發展到了今天,已經非常的同質化,如果僅僅是除去上下文環境來單純的討論產品性能沒有任何意義。

既然環境相同,那一定是Windows環境下,相同的硬體。首先要考慮,需要面對何種類型的負載,需要支持的功能,兼容性等各種方面的原因。

和樓上兩位不同,我是SQL Server的從業人員,見過很大的SQL Server項目做得很好,也見過很小的SQL Server項目做得很爛,關鍵在於人。

不過通常來說,產品選項涉及到的往往不是技術人員,而是商務方面,決策層方面的事。以我的經驗來看互聯網企業mysql用的多,生產型或傳統企業sql server用的少。

那性能的概念是什麼?摘抄一下官方定義:

database performance can be defined as the optimization of resource use to increase throughput and minimize contention, enabling the largest possible workload to be processed.

性能是資料庫處理最多的吞吐量,而SQL Server的默認配置是為了滿足絕大多數環境,因此由於某個阻塞原因(CPU/內存/io/網路/鎖)導致的吞吐量減少在默認配置下和mysql相比是不公平的。因此我認為產品本身到今天問題不大,但是,去實施和運維的人才是關鍵。


首先感謝 @G_will 的邀請回答。我說說我的看法。

1. 先說明,我沒有使用過SQL Server,我一直工作在MySQL下面。

2.在普通未經優化的配置下面,單憑性能,MySQL優於SQL Server,具體連接可以參加以下傳送門:

鏈接1: http://www.google.com/#hl=zh-CNsource=hpq=MySQL+SQL+Server+%E6%80%A7%E8%83%BDoq=MySQL+SQL+Server+%E6%80%A7%E8%83%BDaq=faqi=aql=gs_sm=egs_upl=4421l12636l0l7l7l0l0l0l0l0l0ll0bav=on.2,or.r_gc.r_pw.fp=2dd397177128df15biw=1280bih=663

鏈接2: http://www.cnbruce.com/blog/showlog.asp?log_id=1102

鏈接3: http://soft.zdnet.com.cn/software_zone/2007/0914/506454.shtml

但性能是一個需要具體數據說明的事實,我身邊沒有機器,無法在各種表大小、負載以及硬體情況下一一測試。

3. MySQL 和 SQL Server設計哲學根本不同,其實不應該拿來進行比較。

希望對你有用


SQL Server 是非常優秀的產品.熟悉它,善用它 .

沒有證據證明windows平台下,兩種資料庫的性能有大的差異,資料庫產品都有各自優勢所在.

如果綁定了windows平台,建議使用sql server.

可考慮遷移到linux.

http://dev.mysql.com/tech-resources/articles/move_from_microsoft_SQL_Server.html


兩種都用過。

mssqlserver幾乎不用去考慮編碼的問題。然後在win環境下各種方便,各種連接工具,何況即便是Excel都可以直接連接odbc。報錯的機會很小。

然而,MySQL,64位的客戶端必須對應相應版本的環境和包,odbc也是。還有編碼的問題。總之如果是第一次上手,難免各種問題。

但是MySQL是目前為止最適合搭積木的資料庫系統。它足夠輕盈可以裝的嵌入式設備,性能在低內存低主頻的設備上可圈可點。這一點在vps就是雲主機上特別有競爭力。

然後就是集群系統,這個大家都知道了。SQLserver不是沒有好的產品,只是價格太貴了。

回到性能的話題,一般的架構專家不會把性能作為主要選型的指標。他們考慮的是研發成本和可用性。換句話說就是哪個容易用哪個,哪個好用用哪個。我測試過的產品一般會有15%-25%上的差異,這是某個國內同等雲主機配置下的結果。不排除網路因素。

希望對你有幫助。


兩種資料庫都是成熟的關係型資料庫,性能方面沒有代差。

兩者的差距主要在

1. 價格。MySQL免費

2. 支持的平台。SQL Server雖然支持Linux,但更成熟的應用場景是作為.Net平台下的默認資料庫選型。這限制了SQL Server未來的使用場景。

3. 開發/運維人員招聘的難易程度

4. 分散式擴展的便利程度。不過需要注意的是關係型資料庫絕大多數應用場景都是單庫。

5. 語法層面的差異。比如SQL Server對存儲過程的開發更友善。但這不會影響到資料庫選型。

兩個結論

6. 絕大多數場景編程語言選型差異不會影響到web應用的性能。

7. 絕大多數場景資料庫選型差異不會影響到web應用的性能。


簡直瞎扯,默認情況下(硬體配置相同,且均不對資料庫進行優化),MySQL差了SQLServer不止一大截好吧。SQLServer秒殺MySQL。至於MySQL更換資料庫引擎或者做其他優化另當別論!


範圍過於寬泛了,沒法比較,可以參考資料庫設計話題的其它問題。

借用一句別人的話

編程語言決定程序性能的上限,程序員決定性能下限

在資料庫也是一樣的。

設計不好或者瞎寫SQL都會慢得要死。

還有一些工程上取巧的辦法加快查詢,比如冗餘欄位、比如夜間任務。

合理利用相應資料庫平台的特性,在不同的業務要求下使用不同的方案才能打到相對快。


公司最開始用mysql當資料庫,innodb引擎,做一個樹狀的鏈表結構的表。後來因為太卡,改為mssql了。


推薦閱讀:

產品DBA、開發DBA、運維DBA的區別?
MySQL多表關聯查詢效率高點還是多次單表查詢效率高,為什麼?
如何才能招到優秀的 MySQL DBA?
分散式系統架構實戰--簡易版支付系統怎麼部署?

TAG:資料庫 | MySQL | 資料庫性能 | MicrosoftSQLServer |