1. 程式人生 > >MySQL和SQL Server,到底選擇誰?

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將是最好的選擇。

相關推薦

MySQLSQL Server到底選擇?[轉]

對於程式開發人員而言,目前使用最流行的兩種後臺資料庫即為MySQL and SQL Server。這兩者最基本的相似之處在於資料儲存和屬於查詢系統。你可以使用SQL來訪問這兩種資料庫的資料,因為它們都支援ANSI-SQL。還有, 這兩種資料庫系統都支援二進位制關鍵詞和關鍵索引

MySQLSQL Server到底選擇

  對於程式開發人員而言,目前使用最流行的兩種後臺資料庫即為MySQL and SQL Server。這兩者最基本的相似之處在於資料儲存和屬於查詢系統。你可以使用SQL來訪問這兩種資料庫的資料,因為它們都支援ANSI-SQL。還有,這兩種資料庫系統都支援二進位制關鍵詞和關鍵索引,這就大大地加快了查詢速度。同

MySQLSQL server語法的差異

參考:https://www.linuxidc.com/Linux/2017-10/148022.htm 1.大小寫敏感 在MySQL中對部分物件的引用是大小寫敏感的,如資料庫名、表名。 2.註釋符 MySQL中有三種註釋符: 使用“#”開頭 使用“–”開頭,和SQ

關係型資料庫MySQLSQL Server、Oracle的區別

MySQL 不支援事務處理、沒有檢視、儲存過程和觸發器(trigger),沒有資料庫端的使用者自定義函式,不能使用標準SQL語法。 SQL Server 它已廣泛應用於金融、保險、電力、行政管理等與資料庫有關的行業。由於其易操作性及友好的介面。它一般是和同是微軟產品的.net平

MySQLMySQLSQL Server的區別

導讀:接下來的網上商城的專案,需要用到MySQL資料庫了。這個對於我來說,是一個新接觸的東西,按照慣例,在剛開始學習一個東西的時候,先從巨集觀上去了解它。本篇部落格,先介紹SQL Server的基本內

mybatis逆向工程配置(MySQLSQL server

MySQL 只需配置generatorConfig.xml配置檔案即可 <?xml version="1.0" encoding="UTF-8"?> <!DOCTY

DB2、Oracle、mysqlsql server區別

首先這句話有點道理:教學用sqlserver,自己玩用mysql,想玩高階大氣就db2,想花錢買放心家省心就用oracle! 在學校裡學習的是sqlserver,然後自己學習開發的時候,用的是mysql,操作簡單,安裝簡單,部署一個簡單專案很適用,然後工作的時候用的都是D

JDBC連線MySQLSQL Server的工具類

簡單的JDBC連線,沒有用c3p0之類的連線方式,所有連線資訊也直接放在了工具類裡,有需要的自己去改 JDBCUtils1.java package mysqlutils; import java.sql.DriverManager; import j

MySQLSql Serversql語句區別

   專案需要做sql server適配,因此需要將所有寫的mysql的sql語句轉變成sqlserver裡面的sql語句。在做適配的過程中,總結出了以下幾點關於MySQL和SQLServer的sql

MySQLSQL server 、Oracle資料庫中查詢所有的資料庫查詢指定資料庫所有表名查詢所有的欄位的名字

MySQL中查詢所有資料庫名和表名 1.查詢所有資料庫 show databases; 2.查詢指定資料庫中所有表名 select table_name from information_schema.tables where table_schema='database_name' a

MySql/OracleSQL Server的分頁查

假設當前是第PageNo頁,每頁有PageSize條記錄,現在分別用Mysql、Oracle和SQL Server分頁查詢student表。 1、Mysql的分頁查詢:  1 SELECT 2 * 3 FROM 4 student 5 LIMIT (PageNo - 1) *

Hibernate 環境 配置 對映資料庫 SQL server Mysql 資料庫 測試無誤

最近要消化的知識有點多,多以特地將筆記寫道 部落格中,方便檢視 需要到的hibernate jar 包 ,大家可以自行到官網下載 Hibernate 中 配置 Sqlserver 資料庫 <?xml version="1.0" encoding=

mysqlsql server oracle分頁的實現方法

1分頁 要實現分頁,必須知道 某一頁的 資料 從哪裡開始 到哪裡結束 頁面大小:每頁顯示的資料量 假設每頁顯示10條資料 mysql分頁: mysql:從0開始計數 0 0 9 1 10 19 2 20 29 n n*10 (n+1)*10-1 結論: 分頁: 第n頁的資料:

Excel匯入SQL SERVER數字字元會被系統自動置為NULL的解決方法

          在將Excel資料匯入SQLServer過程中,SQLServer會做出判斷,是採用float型還是nvarchar型來接受資料,當資料來源為數字和字元的組合時,系統會出現將型別設定為float,從而將混合方式的資料設定為NULL的情況,為此有以下解

java用jdbc連線mysql資料庫sql server資料庫

public static void cre_mysql(String lst,String term,String kind) { try { Class.f

用戶、組或角色 'zgb' 在當前數據庫中已存在。 (Microsoft SQL Server錯誤: 15023)

href 角色 比較 chan 通過 sql ref lac 區別 在使用SQL Server 時,我們經常會遇到一個情況:需要把一臺服務器上的數據庫轉移到另外一臺服務器上。而轉移完成後,需要給一個"登錄"關聯一個"用戶"時,往往會發生錯誤: “錯誤15023:

項目管理三大認證體系選擇?

bsp 經理人 認證 中文 都是 理論 人的 全球 既然 不知道各位學友是不是也在選擇項目管理培訓的時候跟我一樣,不知道三個項目管理體系該學誰?在上課的時候班裏我就發現有沒搞清楚可以選擇之前就已經被選擇了。好在學項目管理可以“一夫多妻”,再來思考一下也來得及。 1、其實

MySQLPostgreSQL之外為什麽阿裏要研發HybridDB數據庫?

出了 高性能 一點 兩個 服務 開放 增量 ews news http://www.infoq.com/cn/news/2016/12/MySQL-PostgreSQL-Greenplum 編者按 在大數據火遍IT界之前,大家對數據信息的挖掘通常聚焦在BI(Busine

PythonSQL Server 2017的強大功能

詳細 () con 其中 重建 one 為我 大型 ica Python和SQL Server 2017的強大功能Python是SQL Server 2017的新功能。它主要是為了在SQL Server中允許使用基於Python的機器學習,但是它可以與任何Python庫或

翻譯:PythonSQL Server 2017的強大功能

ray app auto 存儲過程 ssa ast 端點 集成 ror Python和SQL Server 2017的強大功能 Python是SQL Server 2017的新版本。它的主要目的是允許在SQL Server中使用基於Python的機器學習,但它可以使用