1 、背景和问题

Microsoft SQL Server 是商业数据库,需要收费,收费概况如下:

Mysql、MSSQL选择和比较_对比分析


问题在于:是否值得购买和使用 Microsoft SQL Server 许可?尤其是在开源软件盛行的软件行业中。开源软件一般是免费的,其中 MySQL 是使用最广的开源关系型数据库,其费用如下:

Mysql、MSSQL选择和比较_数据库_02


2 、分类和对比

目前数据库主要分为关系型数据库、非关系型数据库,后者又可以进一步细分为 NoSQL 数据库、分布式数据库;按收费方式划分为商用数据库、免费数据库,按开源情况划分为开源数据库、闭源数据库,按实时应用情况划分为实时数据库、非实时数据库。

Microsoft SQL Server 是商用、闭源、非实时、关系型数据库, Microsoft SQL Server 以下简称 MSSQL 。


MSSQL 常常和 ORACLE 对比,他们同为商用关系型数据库。

MSSQL 也常常和 MySQL 对比,他们同为关系型数据库,但是 MySQL 是开源数据库,最初是免费数据库,现在开始微量收费。

MSSQL 还常常和 NoSQL 对比, NoSQL 泛指非关系型数据库,非关系型数据库中一个典型实例是 MongoDB ,因此也常常使用 MongoDB 来代替 NOSQL 和 MSSQL 对比。

下表对比了 MSSQL 、 ORACLE 、 MYSQL 、 MONGODB 的情况:

条目

MSSQL

ORACLE

MYSQL

MONGODB

是否收费

是

是

是(少量许可费)

否

是否支持 SQL

是 (T/SQL)

是 (PL/SQL)

是

否

是否广泛应用

是

是

是

是

可扩展性

高

非常高

较低

很低

安全性

高

非常高

较低

很低

可用性(集群)

高

非常高

高

低

OLAP (联机分析处理)

支持

支持

不支持(额外插件)

不支持(额外插件)

OLTP (联机事务处理)

支持

支持

支持

不支持(额外插件)

标准

SQL-92

SQL-92

SQL-92

不支持

访问接口

ODBC 、 JDBC 、 OLE DB 、 Native Client

ODBC 、 OLE DB 、 OCI/C 、 OCI/C++

Connector/C 、 Connector/C++ 、 Connector/J 、

Connector/NET 、

Connector/ODBC 、 Connector/Python 、 PHP

Node-JS


























总结如下:

(1) MSSQL 、 ORACLE 、 MYSQL 更适用于传统业务, MongoDB 更适用于互联网业务。

(2) ORACLE 价格昂贵, MSSQL 相比较而言价格适中, MySQL 收费低廉。

3 、可选路径

根据以上情况,可选方案有:

(1) 使用 MSSQL

商业关系型数据库,非常适合传统业务,最主要优点是便于维护,缺点是需要较多收费。

MSSQL 标准版每核 3717 美元,假设租用四个核的 CPU 作为数据库服务器,费用为 14868 美元,国内实际价格需要咨询微软,可能会低于这个数值。

(2) 使用 MySQL

开源关系型数据库,非常适合传统业务,最主要优点是其用户基数非常大、开源、收费低廉,缺点是维护不易,稳定性比 MSSQL 差,往往使用集群提高整体稳定性。

如果业务系统不能开源,则不能使用MySQL社区免费版。

MySQL 标准版需要缴纳每年 2000 美元的费用,国内实际价格需要咨询oracle,可能会低于这个数值。

使用 MYSQL 会有一定额外工作量,可能包含的工作:

* 更换数据库访问接口

估算: 1 人月

* 编写 MYSQL 数据库构建脚本

估算: 1人月

* 找到并转换不兼容的结构和数据

估算: 1 人月

* 回归测试

估算: 1 人月