`
iorim4
  • 浏览: 9600 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

MySQL和Oracle的对比(转)

阅读更多
eWeek 权威测试显示MySQL 4.0.1 可与Oracle 9i 媲美

eWEEK Labs/PC Labs 可以说是做基准测试的老大了,早在 1993年 10月份他们的姐妹杂志 PC Magazine 就做过同样的测试。这次和 PC Magazine 合作测试了五种数据库在 Java 应用服务器上的表现,结果显示 MySQL 最新的 4.0.1 版本性能可以和 Oracle 9i 媲美, 垫低的当然是微软的 SQL Server 2000 。 :-)
测试的这五种数据库是:IBM 的 DB2 7.2 FixPack 5,微软的 SQL Server 2000 企业版 SP2, MySQL AB 的 MySQL 4.0.1 Max, Oracle 的 Oracle9i 企业版 9.0.1.1.1 以及 Sybase 的 ASE (Adaptive Server Enterprise) 12.5.0.1。

测试兼容性也是基准测试的一个主要目的,所有的数据库都在同样的硬件条件下测试:
HP NetServer LT 6000r 带有四颗 700MHz Xeon CPU, 2GB 内存以及 24 台 10000 rpm 的 9.1GB Ultra3 SCSI 磁盘,操作系统为 Windows 2000 Advanced Server SP2。

测试的应用程序是一个叫做 Nile 的基于 Web 的书店应用。Nile 采用了 Empirix 公司的测试套件 6.0 ,能加载 50 到 10000 个并发用户。

测试采用的应用服务器是 BEA 的 WebLogic 6.1 SP1,并用 JSP 编写了 Nile 应用。

每种测试运行一个小时产生五万张订单,15 万到 20万相关的记录数,我们得到的最好的伸缩性是在两台 6路 HP NetServer LT 6000r ( 4GB 内存,千兆网卡)服务器上运行6个 WebLogic 例程。HTTP 流量均衡的分配到这六个例程中。

测试的总体结果显示 Oracle9i 和 MySQL 有最好的性能和伸缩性,但是 9i 仅仅略微比 MySQL 好一些,ASE, DB2, Oracle9i 和 MySQL 到达 550 个并发用户时已经“力不从心”了,ASE 的性能下降到了每秒 500 个页面,比 9i 和 MySQL 要低 100 个页面,DB2 在高负荷情况下,性能下降也很厉害,只有每秒 200 个页面了。

由于 JDBC 驱动存在问题,SQL Server 在整个测试中都只能达到每秒 200 个页面。

驱动,内存优化和数据库设计问题是影响性能的主要因素,经过手工细调后的性能会和没有调优的性能差两倍。

Oracle 和 MySQL 的驱动具有完整的 JDBC 特色和稳定性(MySQL的员工采用了Mark Matthews 编写的 JDBC 驱动,因为他们没有自己的 JDBC 驱动程序)。

为各种数据库找到最好的内存配置是一件具有挑战性的工作,我们在这个问题上花了好几天。

SQL Server 和 MySQL 的配置最简单,而 Oracle9i 是最复杂的。 9i 采用了很多独立的内存缓冲,每个数据库连接需要消耗很大的内存(大约 400KB),而 DB2 只需要 177 KB, SQL Server, MySQL 和 ASE 都只需要 50KB 就够了,结果是 9i 的数据和执行计划的缓冲就比别的数据库要小。

MySQL 的高性能源自采用了内存内的查询结果集缓冲,这是 4.0.1 的新特色,我们不采用这个缓冲的话, MySQL 的性能会下降三分之二。另外, MySQL 的员工还根据表的不同采用不同的数据库引擎。

所有的订单表采用 MySQL 的 InnoDB 引擎(支持事务,行锁,多版本同步),目录和用户表则不需要事务支持,采用了 MySQL 的轻量的,非事务的 MyISAM 引擎。

MySQL 4.0.1 的新引入的高速查询缓冲引人注目,其他的数据库没有这个特色。如果查询的文本具有和缓冲中一模一样的匹配的话,MySQL 能直接从缓冲去数据,而不需要编译查询语句,取锁或者搜索索引,这项技术在表不被经常更新的情况下十分有用。

微软的 SQL 2000 虽然在 Java 平台上没有上好表现,但是当我们用 ASP.Net 重写基准测试,并采用 IIS 5.0 ,和 OLE DB 连接,得到的结果或许会让 Bill Gates 松口气,每秒 870 个页面。

在测试前,我们邀请五家公司派员参与测试,只有 MySQL 和 Sybase 欣然前往,IBM 只是答应通过电子邮件交流,微软和 Oracle 都拒绝参加。因此他们的数据库调整都是我们代劳的。

在测试中,我们惊奇的发现驱动程序是问题的最大根源。

在五种被测试的数据库中,只有 9i 和 MySQL 能连续运行 Nile 8个小时,DB2 的 JDBC 驱动不支持可更新的结果集,因此我们只能打开所有的结果集(采用 CONCUR_READ_ONLY),采用 SQL update 语句来更新,最终还是通过了 8个小时的稳定性测试。

在采用 Sybase 的 JConnect 5.5 驱动时,我们发现当应用请求的结果集包含双向游标时,JConnect 把整个结果集存储在客户端的内存里来增加后续游标的命令处理速度,这项工作在低负荷时还马马虎虎,但是当用户达到上百时,应用服务器消耗了几百兆的内存。结果不到 8 个小时,我们的 6个 应用服务器进程统统挂起了。

为了解决这个问题,我们把应用的浏览逻辑重新改写,只采用前向游标(JConnect 不在客户端内存缓冲),为了保证查阅到前面的图书,我们需要把相同的查询运行两遍,得到图书的总数然后得到图书的数据,这样就影响了 ASE 的性能。

但是,这样做的结果是 ASE 的能整夜的跑基准测试,客户端能从 C/S 结构的应用中获益,但是对于应用服务器而言,这是一个可怜的选择。

微软的 JDBC 设计有缺陷,在 WebLogic 的控制台上我们发现每次 Java 虚拟机作garbage collection,释放出来的内存就少了一些,所以微软的 JDBC 驱动用不到 8 小时就歇菜了
分享到:
评论

相关推荐

    mysql和Oracle性能比较.pdf

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

    TiDB&MySql&Oracle介绍及区别

    总结:TiDB、MySQL 和 Oracle 各具特色,TiDB 适合需要高扩展性和 HTAP 场景,MySQL 更适合中小型 Web 应用,而 Oracle 则是大型企业级应用的首选。选择哪种数据库应根据具体业务需求和技术背景来决定。

    oracle,sqlserver及mysql对比

    Oracle、SQL Server 及 MySQL 对比 Oracle、SQL Server 及 MySQL 是目前最流行的三大关系数据库管理系统,各有其优缺点。本文将从表空间、查询语句、事务、分区表和分区索引、优缺点等方面对三者进行比较。 表空间...

    mysql数据库转换成oracle

    MySQL和Oracle都是业界广泛应用的数据库系统,但有时由于业务发展或技术升级,可能需要将数据从MySQL转换到Oracle。本文将深入探讨如何实现这一过程,并提供相关工具及策略。 首先,我们需要了解MySQL和Oracle之间...

    oracle与mysql对比

    ### Oracle与MySQL对比 在数据库管理系统领域,Oracle与MySQL都是极具影响力的选择,分别代表了企业级数据库和开源数据库的不同特点。下面将从安装目录、管理工具、客户端工具、基本操作命令等方面进行详细的对比...

    MySQL、PostgreSQL、Oracle比较及数据库基础知识

    MySQL、PostgreSQL、Oracle比较; 数据库基础知识.ppt

    Convert Mysql to Oracle

    5. 测试与验证:迁移完成后,务必进行全面的功能和性能测试,确保所有业务逻辑和查询在Oracle环境中能够正常工作,同时对比迁移前后的数据,确认无误。 6. 应用程序更新:如果应用程序直接与数据库交互,那么在数据...

    oracle与mysql 性能的对比

    Oracle 与 MySQL 性能对比 Oracle 与 MySQL 是两种流行的关系数据库管理系统,分别由 Oracle Corporation 和 MySQL AB(现在属于 Oracle Corporation)开发。它们之间的性能对比是数据库管理员和开发者们关心的热门...

    mysql2oracle

    2. **数据类型转换**:MySQL和Oracle的数据类型并不完全对应,如MySQL的VARCHAR2在Oracle中对应VARCHAR,DATE在MySQL中可能需要转换为Oracle的TIMESTAMP。`mysql2oracle`工具应能自动或手动处理这些转换。 3. **表...

    oracle和mysql数据库的对比

    标题与描述解析:“oracle和mysql数据库的对比”,这个标题直接点明了文章的主题,即对Oracle和MySQL这两种在IT行业中广泛使用的数据库管理系统进行比较。Oracle和MySQL分别代表了企业级数据库和开源数据库的典型,...

    MySQL VS ORACLE.pdf

    MySQL和Oracle是两款广泛使用的数据库管理系统,它们在很多方面存在差异,选择哪一个往往取决于特定的需求和应用场景。以下是从架构、事务处理、性能、开发方面以及其他特性进行的对比。 在架构方面,MySQL支持多种...

    SqlServer,Oracle,MySql,达梦DM数据库结构相互对比同步, 代码生成,Word表格生成Model,文本对比

    跨数据库对比,同时支持sqlserver,oracle,MySql ,达梦相互对比,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此...

    MySQL与Oracle的语法区别详细对比

    Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,’yyyy-mm-dd’) from dual; SQL> select to_char(sysdate,’hh24-mi-ss’) from dual; mysql> select date_format(now(),’%Y-%m-%d’); mysql> ...

    数据库转换mysql to oracle

    3. 数据类型映射:MySQL和Oracle的数据类型有差异,如VARCHAR2在Oracle中对应MySQL的VARCHAR,DATE在Oracle中与MySQL的DATETIME不同。转换过程中,需要确保数据类型的一致性,避免数据丢失或错误。 4. 规则和触发器...

    Mysql迁移Oracle方案

    ### MySQL 迁移至 Oracle 方案详解 #### 一、环境准备 ...综上所述,MySQL到Oracle的数据迁移涉及多个步骤和技术细节,需要严格按照上述流程操作,并在每个环节仔细核对,确保数据的一致性和完整性。

    mysql to oracle

    - 权限管理:Oracle的权限系统比MySQL更为复杂,需提前规划角色和权限分配。 - 触发器与存储过程:MySQL的存储过程需转换为Oracle的PL/SQL代码。 - 索引与约束:检查索引和外键约束是否正确创建,确保数据完整性...

    20190521-mysql与oracle数据库差异.pptx

    关系数据库选型、mysql与oracle数据库差异、oracle的优劣势、数据迁移

    Mysql和Oracle的对比.xlsx

    oracle和mysql的语法对比大全,包括语法,sql,内部函数,写法的全方位对比,如有错误或者遗漏欢迎指正

    总结mysql和oracle的语法区别.docx

    "总结mysql和oracle的语法区别" 本文主要讨论MySQL和Oracle两种数据库管理系统之间的语法区别。通过对比分析,了解两种数据库管理系统在语法结构、数据类型、查询语言、索引、视图、存储过程等方面的差异。 一、...

    SqlServer,Oracle,MySql数据库结构相互对比同步

    两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...

Global site tag (gtag.js) - Google Analytics