浅析MySQL、Oracle、DB2、TDSQL的特点

一、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兼容的关系型数据库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
docker-compose 是 Docker 官方的一个用于定义和运行容器化应用的工具。它使用 YAML 文件来配置应用的服务、网络和卷等方面的设置。 当使用 docker-compose 部署 MySQL 时,可能会遇到无法访问 MySQL 的问题。出现这种情况一般有以下几个可能的原因: 1. 网络配置问题:docker-compose 在默认情况下会创建一个默认的网络,并将所有定义的服务连接到该网络。如果服务的网络配置不正确,可能导致无法访问 MySQL。可以通过检查网络配置或创建自定义网络来解决此问题。 2. 端口映射问题:MySQL 默认使用 3306 端口进行通信,但是在容器内部的端口与宿主机上的端口之间可能存在映射问题。可以通过检查端口映射配置或使用容器的 IP 地址来解决此问题。 3. 认证问题:MySQL 服务通常需要进行身份验证才能访问。在 docker-compose 文件中,可以通过设置环境变量来指定 MySQL 的用户名和密码。如果未正确设置这些环境变量,可能导致无法访问 MySQL。可以检查环境变量配置或者在容器内部手动配置用户名和密码来解决此问题。 4. 容器启动顺序问题:如果在 docker-compose 文件中定义了多个服务,并且它们之间有依赖关系,那么容器启动的顺序可能会影响 MySQL 的访问。可以通过在容器之间添加依赖或者设置延迟启动来解决此问题。 总结起来,当 docker-compose 部署的 MySQL 无法访问时,通常是由于网络配置、端口映射、认证配置或容器启动顺序等问题造成的。通过检查这些配置,并进行适当的调整或修复,通常可以解决无法访问 MySQL 的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值