1
、背景和问题
Microsoft SQL Server
是商业数据库,需要收费,收费概况如下:
问题在于:是否值得购买和使用
Microsoft SQL Server
许可?尤其是在开源软件盛行的软件行业中。开源软件一般是免费的,其中
MySQL
是使用最广的开源关系型数据库,其费用如下:
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
人月