本文对三种常用的关系型数据库(RDBMS–relational database management systems )做一个简单的介绍和对比,希望在了解三种不同的数据库的同时能够对这三种关系型数据库的特点和问题有一个清晰的认识。
总体比较
特征 | Oracle | MySQL | SQL Server |
---|---|---|---|
支持语言 | C, C#, C++, Java, Ruby, and Objective C | C, C#, C++, D, Java, Ruby, and Objective C | Java, Ruby, Python, VB, .Net, and PHP |
操作系统 | Windows, Linux, Solaris, HP-UX, OS X, z/OS, AIX | Windows, Linux, OS X, FreeBSD, Solaris | Windows |
第一次发布时间 | 1980 | 1995 | 1989 |
开发语言 | C and C++ | C and C++ | C++ |
Licensing | 收费 | 开源 | 收费 |
API与其他访问方式 | ODP.NET Oracle Call Interface (OCI) JDBC ODBC | ADO.NET JDBC ODBC | OLE DB Tabular Data Stream (TDS) ADO.NET JDBC ODBC |
数据模式 | √ | √ | √ |
SQL | √ | √ | √ |
数据类型 | √ | √ | √ |
触发器 | √ | √ | √ |
MapReduce | × | × | × |
并发 | √ | √ | √ |
外键 | √ | √ | √ |
事务 | ACID | ACID | ACID |
市场占有率对比
对比图
详细参考db-engines与Udemy的数据
Oracle
简介
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
Oracle具有庞大的用户群和较高的市场占比,尤其是在Unix服务器上的使用比率很高,Oracle在对大型应用和系统的支持以十分可靠和稳定而著称,正式因为十分可靠和稳定所以它也是出了名的难用和昂贵。
优点
- 高稳定性、可靠性。
- Oracle在导数据工具sqlload.exe,Oracle可以按照条件把文本文件数据导入.
- 优秀的安全机制:没有读锁,采取快照SNAP方式完全消除了分布读写冲突。自动检测死锁和冲突并解决,并且数据安全级别为C2级(最高级)。
- 在处理大数据方面Oracle会更稳定。
- 兼容绝大多数主流平台。
- 采用标准的SQL结构化查询语言。
- 具有丰富的开发工具,覆盖开发周期的各阶段。
- 支持大型数据库,数据类型支持数字、字符、大至2GB的二进制数据,为数据库的面向对象存储提供数据支持。
缺点
- 太贵。
- 管理维护麻烦一些;
- 对内存的高依赖导致数据库崩溃后回复很麻烦。
- 大对象不好用,vchar2字段太短,不够用;
- 对数据库管理员的经验要求较高;
- 对硬件的要求很高;
MySql
MySQL(发音为”my ess cue el”,不是”my sequel”)是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySql能够运行在绝大部分的主流操作系统中,并且被广泛应用在网络应用的开发中,深得互联网公司的喜爱,因为是它是开源的,MySql社区版是免费提供给开发人员使用的,尽管其被Oracle收购后提供了一些扩展的商业版本,但开源的版本也是可以使用的。
优点
- 支持5000万条记录的数据仓库
- 适应于所有的平台
- 是开源软件,版本更新较快
- 性能很出色。纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。
- 价格便宜
缺点
- 缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能
SqlServer
美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案
SQL Server是微软专为windows操作系统而设计的,被广泛应用于中小型的小系统中,相对Oracle来说费用很低而且十分好用,不过Oracle的优点也是它的缺点,不稳定且安全性不高。
优点
- 真正的客户机/服务器体系结构
- 图形化的用户界面,使系统管理和数据库管理更加直观、简单
- 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地
- 与WinNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,SQL Server也可以很好地与Microsoft BackOffice产品集成。
- 提供数据仓库功能,这个功能只在Oracle和其他昂贵的DBMS中才有。
缺点
- MySQL也缺乏一些存储程序的功能;
- 使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入;
- 使用myisam配置,如果你不慎损坏数据库,结果可能会导致所有的数据丢失;
- 没有事务, 没有子查询,也没有视图;
总结
- Oracle适合对安全、性能、数据、业务要求较高的大型系统或应用。
- MySql的开源特性和高兼容性广泛适用于web应用的开发。
- SQL Server适用于采用windows作为服务器的中小型系统或应用。
参考A Comparison of Oracle, DB2, MySQL, and SQL Server