一、MySQL
MySQL的最初的核心思想,主要是开源、简便易用。其开发可追溯至1985年,而第一个内部发行版本诞生,已经是1995年。
MySQL的爆发实际是在01、02年,尤其是02年发布的4.0 Beta版,正式选定InnoDB作为默认引擎,对事务处理能力及数据缓存能力有了极大的提高。同年4.1版开始支持子查询,至此MySQL终于蜕变成一个成熟的关系型数据库系统。05年的5.0版本又添加了存储过程、服务端游标、触发器、查询优化以及分布式事务功能,但同年被Oracle抄了后路,InnoDB被Oracle收编。08年,MySQL被Sun收购,09年,Oracle收购了Sun和MySQL。由于MySQL的早期定位,其主要应用场景就是互联网开发。
架构:
最大的一个特色,就是自由选择存储引擎。每个表都是一个文件,都可以选择合适的存储引擎。常见的引擎有 InnoDB、 MyISAM、 NDBCluster等。但由于这种开放插件式的存储引擎,比如要求数据库与引擎之间的松耦合关系。从而导致文件的一致性大大降低。在SQL执行优化方面,也就有着一些不可避免的瓶颈。在多表关联、子查询优化、统计函数等方面是软肋,而且只支持极简单的HINT。
优点:
1,体积小、速度快、总体拥有成本低,开源;
2,支持多种操作系统;
3,是开源数据库,提供的接口支持多种语言连接操作 ;
4,MySQL的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的mysql能很容易充分利用CPU;
5,MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证;
6,支持ODBC for Windows, 支持所有的ODBC 2.5函数和其他许多函数, 可以用Access连接MySql服务器, 使得应用被扩展;
7,支持大型的数据库, 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改;
8,拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性;
9,MySQL同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言界面,例如C+,Perl,Java,PHP,以及Python。你可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL可用于Unix,Windows,以及OS/2等平台,因此它可以用在个人电脑或者是服务器上。
缺点:
1,不支持热备份;
2,MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变;
3,没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制;
4,MySQL的价格随平台和安装方式变化。Linux的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。Unix或linux 自行安装 免费 、Unix或Linux 第三方安装 收费。
二、Oracle
Oracle:中文译作甲骨文,Oracle成立于1977年。
Oracle的应用,主要在传统行业的数据化业务中,比如:银行、金融这样的对可用性、健壮性、安全性、实时性要求极高的业务;零售、物流这样对海量数据存储分析要求很高的业务。此外,高新制造业如芯片厂也基本都离不开Oracle;电商也有很多使用者,如京东(正在投奔Oracle)、阿里巴巴(计划去Oracle化)。而且由于Oracle对复杂计算、统计分析的强大支持,在互联网数据分析、数据挖掘方面的应用也越来越多。
架构:
数据文件包括:控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件。这是根据文件功能行进行划分,并且所有文件都是二进制编码后的文件,对数据库算法效率有极大的提高。由于Oracle文件管理的统一性,就可以对SQL执行过程中的解析和优化,指定统一的标准:
RBO(基于规则的优化器)、CBO(基于成本的优化器)
通过优化器的选择,以及无敌的HINT规则,给与了SQL优化极大的自由,对CPU、内存、IO资源进行方方面面的优化。
优点:
1,开放性:Oracle能在所有主流平台上运行(包括Windows),完全支持所有的工业标准,采用完全开放策略,可以使客户选择最适合的解决方案,对开发商全力支持。
2,可伸缩性,并行性:Oracle的并行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
3,安全性:Oracle获得了最高认证级别的ISO标准认证。它提供多层安全性,包括用于评估风险、防止未授权的数据泄露、检测和报告数据库活动,以及通过数据驱动的安全性在数据库中实施数据访问控制的控制。
4,性能:Oracle几乎是性能最高的关系型数据库,保持开放平台下的TPC-D和TPC-C的世界记录。
5,客户端支持及应用模式:Oracle支持多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
6,操作性:Oracle相对于其他RDBMS来讲较复杂,同时提供GUI和命令行,在WindowsNT和Unix下操作相同。
7,使用风险:Oracle具有相当长时间的开发经验,完全向下兼容。得到广泛的认可与应用,完全没有风险。
缺点:
1,对硬件的要求很高;
2,价格比较昂贵;
3,管理维护麻烦一些;
4,操作比较复杂,需要技术含量较高。
三、DB2
优点:
1,开放性:能在所有主流平台上运行(包括Windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。
2,可伸缩性,并行性:DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。
3,安全性:获得最高认证级别的ISO标准认证。
4,性能:适用于数据仓库和在线事物处理,性能较高。
5,客户端支持及应用模式:跨平台,多层结构,支持ODBC,JDBC等客户。
6,操作性:操作简单,同时提供GUI和命令行,在Windows NT和Unix下操作相同。
7,使用风险:在巨型企业得到广泛的应用,向下兼容性好。风险小。
四、TDSQL
TDSQL(Tencent Distributed SQL)是一种分布式关系型数据库,由腾讯云开发并开源。TDSQL能够提供高性能、高可用性的数据存储和访问服务,满足用户的大规模、高并发、强一致性的数据需求。
TDSQL采用了分布式架构,可以水平扩展数据存储和访问能力,支持多副本同步,保证数据的强一致性和高可用性。同时,TDSQL还支持分区表、分区索引等高效的数据划分方式,可以自如应对数据规模和访问压力的增长。
TDSQL采用了MySQL协议,兼容MySQL语法和工具,可以轻松集成到已有的MySQL应用程序中,且具有更好的性能和扩展能力。
总之,TDSQL是一款具有高性能、高可用性、强一致性、分布式扩展能力和与MySQL兼容的关系型数据库。