`
weitao1026
  • 浏览: 1048372 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
一、并发性

并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。

mysql:
mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。
虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。

oracle:
oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多。

二、一致性
oracle:
oracle支持serializable的隔离级别,可以实现最高级别的读一致性。每个session提交后其他session才能看到提交的更改。oracle通过在undo表空间中构造多版本数据块来实现读一致性,
每个session查询时,如果对应的数据块发生变化,oracle会在undo表空间中为这个session构造它查询时的旧的数据块。

mysql:
mysql没有类似oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。
session更新数据时,要加上排它锁,其他session无法访问数据。

三、事务
oracle很早就完全支持事务。

mysql在innodb存储引擎的行级锁的情况下才支持事务。

四、数据持久性
oracle
保证提交的数据均可恢复,因为oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,
如果出现数据库或主机异常重启,重启后oracle可以考联机在线日志恢复客户提交的数据。
mysql:
默认提交sql语句,但如果更新过程中出现db或主机重启的问题,也许会丢失数据。

五、提交方式
oracle默认不自动提交,需要用户手动提交。
mysql默认是自动提交。

六、逻辑备份

oracle逻辑备份时不锁定数据,且备份的数据是一致的。

mysql逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务正常的dml使用。

七、热备份
oracle有成熟的热备工具rman,热备时,不影响用户使用数据库。即使备份的数据库不一致,也可以在恢复时通过归档日志和联机重做日志进行一致的回复。
mysql:
myisam的引擎,用mysql自带的mysqlhostcopy热备时,需要给表加读锁,影响dml操作。
innodb的引擎,它会备份innodb的表和索引,但是不会备份.frm文件。用ibbackup备份时,会有一个日志文件记录备份期间的数据变化,因此可以不用锁表,不影响其他用户使用数据库。但此工具是收费的。
innobackup是结合ibbackup使用的一个脚本,他会协助对.frm文件的备份。

八、sql语句的扩展和灵活性
mysql对sql语句有很多非常实用而方便的扩展,比如limit功能,insert可以一次插入多行数据,select某些管理数据可以不加from。
oracle在这方面感觉更加稳重传统一些。

九、复制
oracle:既有推或拉式的传统数据复制,也有dataguard的双机或多机容灾机制,主库出现问题是,可以自动切换备库到主库,但配置管理较复杂。
mysql:复制服务器配置简单,但主库出问题时,丛库有可能丢失一定的数据。且需要手工切换丛库到主库。

十、性能诊断
oracle有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如awr、addm、sqltrace、tkproof等
mysql的诊断调优方法较少,主要有慢查询日志。

十一、权限与安全

mysql的用户与主机有关,感觉没有什么意义,另外更容易被仿冒主机及ip有可乘之机。
oracle的权限与安全概念比较传统,中规中矩。

十二、分区表和分区索引
oracle的分区表和分区索引功能很成熟,可以提高用户访问db的体验。
mysql的分区表还不太成熟稳定。

十三、管理工具
oracle有多种成熟的命令行、图形界面、web管理工具,还有很多第三方的管理工具,管理极其方便高效。
mysql管理工具较少,在linux下的管理工具的安装有时要安装额外的包(phpmyadmin, etc),有一定复杂性。
分享到:
评论

相关推荐

    Mysql转Oracle软件 DBMover for Mysql to Oracle

    使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 Dbmover for Mysql to Oracle 可以定时,定周期自动运行。 支持 Oracle 8i 以后...

    mysql和Oracle的多数据源配置demo

    本示例"mysql和Oracle的多数据源配置demo"聚焦于如何在SpringBoot框架下同时集成和管理MySQL与Oracle这两种不同的数据库系统,以实现多数据源的配置。这在需要处理不同数据库类型或者需要实现数据冗余和故障切换的...

    支持MYSQL和ORACLE数据库表

    在IT行业中,数据库是数据管理和存储的核心,而MySQL和Oracle是两种广泛应用的关系型数据库管理系统(RDBMS)。本文将深入探讨这两个数据库系统及其在实际应用中的相关知识点。 MySQL是一款开源、免费的SQL数据库,...

    TiDB&MySql&Oracle介绍及区别

    5. MySQL 与 ORACLE 区别 - 功能上:Oracle 提供更多高级特性,如更复杂的数据类型、分区表等。 - 性能上:Oracle 在大型企业级应用中通常表现出更高的性能。 - 价格上:Oracle 通常比 MySQL 成本更高,尤其在...

    Mysql转oracle工具

    这个工具专注于将MySQL的数据库结构和数据转换为Oracle数据库兼容的格式。下面将详细解释这个过程涉及的知识点。 1. **SQL语言的差异**: MySQL和Oracle都是SQL数据库管理系统,但它们对SQL语法的实现有所不同。...

    MySql和oracle区别(全)

    MySQL和Oracle是两种广泛使用的数据库管理系统,它们各自拥有独特的特性和优势,适用于不同的应用场景。本文将深入探讨两者之间的主要区别。 一、数据库架构与设计 1. 数据存储:Oracle采用行式存储,支持大对象...

    mysql和oracle区别的概要介绍与分析

    MySQL 和 Oracle 是两种非常流行的数据库管理系统(DBMS),它们各自具有独特的特点和适用场景。以下是对这两种数据库管理系统的区别描述,以及如何找到相关项目源码的一些建议。 ### MySQL 与 Oracle 的主要区别 ...

    mysql-oracle数据同步

    2. **编程方式**:通过编写Java、Python或其他语言的脚本,连接MySQL和Oracle数据库,读取MySQL数据,处理后写入Oracle。这种方式需要对数据库API有深入理解,比如JDBC、ODBC等。 3. **数据库复制服务**:Oracle...

    mysql和Oracle在对clob和blob字段的处理

    在数据库管理领域,MySQL和Oracle都是广泛使用的数据库系统,它们在处理特定数据类型时有各自的特点和策略。本文将深入探讨这两个数据库系统如何处理`CLOB`(Character Large Object)和`BLOB`(Binary Large Object...

    mysql 数据库转 oracle

    首先,我们需要了解MySQL和Oracle的基本特性。MySQL是一款开源、免费的关系型数据库管理系统,以其易用性和高性能而闻名。Oracle则是一款商业级的、高度可扩展的数据库系统,提供了更多的高级特性和管理工具,尤其...

    mysql和oracle区别.docx

    Oracle 和 MySQL 是两种广泛应用的关系型数据库管理系统(RDBMS),它们在很多方面有着显著的不同,以下将详细讨论这些差异。 1. **组函数使用规则**: 在 MySQL 中,组函数(如 COUNT、SUM 等)可以在 SELECT ...

    mysql和oracle区别.pdf

    Oracle 和 MySQL 是两种广泛使用的数据库管理系统,它们各自拥有独特的特性和功能。以下是对这两个数据库系统在某些关键方面差异的详细说明: 1. **组函数用法**: - 在 MySQL 中,组函数(如 COUNT、SUM 等)可以...

    mysql和Oracle性能比较.pdf

    在对比MySQL与Oracle数据库性能的讨论中,我们通常会从几个关键方面进行分析,包括但不限于事务处理(INSERT、UPDATE、DELETE)、查询效率(SELECT)、硬件资源利用、SQL语法及优化、存储引擎和架构差异等方面。...

    MySql转换成Oracle工具

    Convert Mysql to Oracle 最新版本:4.0 Convert Mysql to Oracle是一个免费的数据库转换工具,实现快速安全地将Mysql数据库导入为ORACLE数据库。 Convert Mysql to Oracle 功能特点 可以转换所有的Mysql字段类型 ...

    mysql和 oracle数据库安装文档

    MySQL和Oracle数据库安装文档 MySQL和Oracle都是流行的关系数据库管理系统,它们广泛应用于企业级应用中。对于初学者来说,安装和配置数据库是一件比较困难的事情。因此,本文档旨在提供一个详细的安装指南,帮助...

    mysql和oracle和sql语句

    MySQL、Oracle和SQL是数据库管理领域中的三大重要成员,它们都使用SQL(Structured Query Language)作为数据操作的主要语言。然而,尽管SQL是通用的,但MySQL、Oracle和SQL Server在语法和功能上还是存在一些差异。...

    连接mysql和oracle的连接池包

    本压缩包提供了连接MySQL和Oracle数据库的连接池组件,使得开发人员能够在同一应用中便捷地处理这两种不同的数据库系统。 1. **连接池的概念**: 连接池是一种数据库管理策略,它预先创建并维护一定数量的数据库...

    mysql和oracle驱动包

    MySQL和Oracle是两种广泛应用的关系型数据库管理系统(RDBMS),在Java编程中,与这些数据库交互通常需要使用Java Database Connectivity(JDBC)驱动。本文将详细介绍这两个数据库的JDBC驱动包及其用途。 首先,`...

    Convert Mysql to Oracle 4.0.zip

    MySQL和Oracle是两个广泛应用的关系型数据库系统,各有其特点和优势。本篇文章将详细讲解如何将MySQL的数据库结构转换为Oracle的数据库结构,主要针对"Convert Mysql to Oracle 4.0.zip"这个工具进行介绍。 标题中...

Global site tag (gtag.js) - Google Analytics