Oracle、MySQL、Microsoft SQL Server、PostgreSQL四大关系型数据库(DBMS)虽然互相之间暗自角力,但是仍然携手一统江湖数十年。
上期我们对四大DBMS非技术因素的基本信息进行了比对,详见Oracle、MySQL等四大关系型数据库竞品分析之1-基本信息篇。
本期我们将进一步从基本技术角度进行比对。
1、实现DBMS的语言谁说C语言是旧时代的产物,C语言其实是跨时代的超级大佬,四个DBMS全都是基于C或C 实现的。
- Oracle:C和C
- MySQL:C和C
- SQL Server:C
- PostgreSQL:C
每个DBMS服务端的宿主操作系统各不相同。
- Oracle
AIX、HP-UX、Linux、OS X、Solaris、Windows、z/OS
- MySQL
FreeBSD、Linux、OS X、Solaris、Windows
- SQL Server
Linux、Windows
- PostgreSQL
FreeBSD、HP-UX、Linux、NetBSD、OpenBSD、OS X、Solaris、UNIX、Windows
3、DBMS支持的开发语言Oracle支持的开发语言最多。
四大DBMS支持的开发语言
4、服务端SQL脚本语言各家语言都在标准SQL的基础上有所延伸,并不一定完全兼容标准SQL,并实现了一些特殊功能。一般开源的DBMS与标准SQL兼容度较好,商业化的DBMS会有更多扩充和不同。
服务端SQL脚本语言
5、API等数据库连接方式JDBC和ODBC是每家不可或缺的,此外每家都会进一步补充自己的特色连接方式。
API等数据库连接方式
6、分区方法分区方法,通俗的说,就是在不同节点上存储不同数据的方法。
分区方法
7、复制方法亦即在多个节点上冗余存取数据的方法。
8、对MapReduce的支持
即是否提供了用户定义Map/Reduce API的方法,四大DBMS基本无支持,但是Oracle可以通过PL/SQL变通实现。
对MapReduce的支持
9、事务事务的四大特性是ACID:
- A:原子性
- C:一致性
- I:隔离型
- D:持久性
不同DBMS对于ACID基本都支持,但也会有不同之处。
对事务的支持
10、内存支持是否提供了一种可选方式,使得所有或一些结构可以只被放在内存中。
内存支持
本系列根据DB-Engines等资料整理。 下期继续进行具体技术比对,欢迎关注“老王谈运维”。
,