MySQL 5.5 新特性:Oracle 收购 Sun 后的首次大幅改进

MySQL 进入 Oracle 产品体系,获得了更多研发投入,新一代 MySQL 产品 ---MySQL5.5 即将面世,较之之前的 5.1 版本,将获得诸多特性方面的提升,简单总结如下:

 

   1. 默认存储引擎更改为 InnoDB

 

   InnoDB 作为成熟、高效的事务引擎,目前已经广泛使用,但 MySQL5.1 之前的版本默认引擎均为 MyISAM ,此次 MySQL5.5 终于做到与时俱进,将默认数据库存储引擎改为 InnoDB ,并且引进了 Innodb plugin 1.0.7 。此次更新对数据库的好处是显而易见的: InnoDB 的数据恢复时间从过去的一个甚至几个小时,缩短到几分钟 (InnoDB plugin 1.0.7 InnoDB plugin 1.1 恢复时采用红 - 黑树 ) InnoDB Plugin 支持数据压缩存储,节约存储,提高内存命中率,并且支持 adaptive flush checkpoint, 可以在某些场合避免数据库出现突发性能瓶颈。

 

   Multi Rollback Segments 原来 InnoDB 只有一个 Segment ,同时只支持 1023 的并发。现已扩充到 128 Segments ,从而解决了高并发的限制。

 

   2. 多核性能提升

 

   Metadata Locking (MDL) Framework 替换 LOCK_open mutex (lock) ,使得 MySQL5.1 及过去版本在多核心处理器上的性能瓶颈得到解决,官方表示将继续增强对 MySQL 多处理器支持,直至 MySQL 性能“不受处理器数量的限制”

 

   3. 复制功能 (Replication) 加强

 

   MySQL 复制特性是互联网公司应用非常广泛的特性,作为 MySQL 最实用最简单的扩展方式,过去的异步复制方式已经有些不上形势,对某些用户来说“异步复制”意味着极端情况下的数据风险, MySQL5.5 将首次支持半同步 (semi-sync replication) MySQL 的高可用方案中将产生更多更加可靠的方案。另外 Slave fsync tunning;Relay log corruption recovery Replication Heartbeat 也将实现。

 

   4. 增强表分区功能

 

   MySQL 5.5 的分区对用户绝对是个好消息,更易于使用的增强功能,以及 TRUNCATE PARTITION 命令都可以为 DBA 节省大量的时间,有时对最终用户亦如此:

 

   1) 非整数列分区:任何使用过 MySQL 分区的人应该都遇到过不少问题,特别是面对非整数列分区时, MySQL 5.1 只能处理整数列分区,如果你想在日期或字符串列上进行分区,你不得不使用函数对其进行转换。很麻烦,而 MySQL 5.5 中新增了两类分区方法, RANG LIST 分区法,同时在新的函数中增加了一个 COLUMNS 关键词。在 MySQL 5.1 中使用分区另一个让人头痛的问题是 date 类型 ( 即日期列 ) ,你不能直接使用它们,必须使用 YEAR TO_DAYS 转换这些列,但在 MySQL 5.5 中情况发生了很大的变化,现在在日期列上可以直接分区,并且方法也很简单 ;

 

   2) 多列分区: COLUMNS 关键字现在允许字符串和日期列作为分区定义列,同时还允许使用多个列定义一个分区 ;

 

   3) 可用性增强: truncate 分区。分区最吸引人的一个功能是瞬间移除大量记录的能力, DBA 都喜欢将历史记录存储到按日期分区的分区表中,这样可以定期删除过时的历史数据。 但当你需要移除分区中的部分数据时,事情就不是那么简单了,删除分区没有问题,但如果是清空分区,就很头痛了,要移除分区中的所有数据,但需要保留 分区本身,你可以:使用 DELETE 语句,但我们知道 DELETE 语句的性能都很差。使用 DROP PARTITION 语句,紧跟着一个 EORGANIZE PARTITIONS 语句重新创建分区,但这样做比前一个方法的成本要高出许多。 MySQL 5.5 引入了 TRUNCATE PARTITION ,它和 DROP PARTITION 语句有些类似,但它保留了分区本身,也就是说分区还可以重复利用。 TRUNCATE PARTITION 应该是 DBA 工具箱中的必备工具 ;

 

   4) 更多微调功能: TO_SECONDS :分区增强包有一个新的函数处理 DATE DATETIME 列,使用 TO_SECONDS 函数,你可以将日期 / 时间列转换成自 0 年以来的秒数,如果你想使用小于 1 天的间隔进行分区,那么这个函数就可以帮到你。

 

   5. Insert Buffering 如果在 buffer pool 中没找到数据,那么直接 buffer 起来,避免额外的 IO;Delete & Purge Buffering 跟插入一样,如果 buffer pool 中没有命中,先 buffer 起来,避免额外的 IO

 

   6. Support for Native AIO on Linux

 

 

以上的特性在 MySQL 5.5 的社区版当中都将包括,在 MySQL 企业版当中,除以上更新之外, Oracle 还加强了更多实用的企业级功能,包括:

 

   1. 实现在线物理热备

 

   MySQL 企业版将包含 Innodb Hotbackup( 这也许是 MySQL InnDB 多年之后重新聚首的新亮点 ) ,从而一举解决过去 MySQL 无法进行可靠的在线实时物理备份的问题, InnoDB Hot Backup 不需要你关闭你的服务器也不需要加任何锁或影响其它普通的数据操作,这对 MySQL DBA 来说应该是一个不错的消息。

 

   2. MySQL Enterprise Monitor 2.2 & Oracle Enterprise Monitor

 

  是的,你没有看错, MySQL 将可以被 Oracle Enterprise Monitor 监控,这是一个实现起来并不复杂,但在过去绝无可能的变化。并且 MySQL 企业版监控器 (MySQL Enterprise Monitor) 得到了更大的加强,版本更新至 2.2 ,对 MySQL 服务器资源占用降低到可以忽略的地步,集成了监控,报警, SQL 语句分析和给出优化建议, MySQL 的一些开源监控方案相比之下显得过于简陋,对企业客户来说, MySQL 变得更加可靠。

 

   3. MySQL Workbench

 

  过去 MySQL 的图形界面工具做的实在是令人难以恭维,当然这也给众多 MySQL 管理工具提供了市场空间,现在 Oracle 打算将 MySQL 做得比 SQL-Server 更加简单易用, MySQL Workbench 是一款专为 MySQL 设计的 ER/ 数据库建模工具,可以用来设计和创建新的数据库图示,建立数据库文档,以及进行复杂的 MySQL 迁移等操作,因此内置 workbench 将使 MySQL 使用起来更简便高效。

 

   4. 关于未来的重要提醒: Oracle 的管理工具, MySQL 也将能够使用, Oracle MySQL 社区想象要聪明,不是吗 ? 当然 MySQL 5.5 我们还没看到这个变化,但变化已经在时间表上, MySQL 社区版也能够被 Oracle 管理工具管理,前提你得是 Oracle 数据库的用户。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值