技术开发 频道

MySQL的大数据改进:支持NoSQL和Hadoop

        【IT168 专稿】说到大数据,不得不提的就是阿里巴巴。这家全球领先的电子商务企业,每天处理的数据量是其他任何公司都无法比拟的,它也正在转型成为一家真正意义上的数据公司——MySQL就是阿里巴巴转型的重要武器。曾经采访过阿里的一位数据库架构师,他认为阿里将开源MySQL的性能达到非常好的状态,超越任何关系型数据库和NoSQL。

  2009年,甲骨文通过收购Sun获得了MySQL的版权,业界就开始质疑甲骨文的用意,担心MySQL的未来发展。而甲骨文在收购时就曾表态,会比Sun投入更多的精力来开发MySQL。目前看来,至少MySQL社区版和第三方版本的发展并没有受到收购的影响,MySQL的商业版本也在持续的改进和更新中。下面笔者将盘点一下甲骨文推出的MySQL 5.6正式版的一些新功能,及其针对大数据时代的改进。

  一、MySQL 5.6正式版功能盘点

  2013年初,甲骨文发布MySQL 5.6正式版,通过提升MySQL优化诊断来提供更好的查询执行时间和诊断功能,通过增强InnoDB存储引擎来提高性能处理量和应用可用性,通过MySQL复制的新功能以提高扩展性和高可用性,并且拥有许多新增强功能,包括地理信息系统、精确的空间操作、增强的IPv6合规性和优化服务器的默认设置。

  凭借增强的性能、可扩展性、可靠性和可管理性优势,MySQL 5.6可帮助用户满足最苛刻的网络、云和嵌入式的应用需求。通过子查询优化、在线数据定义语言(DDL)操作、NoSQL访问InnoDB、新的性能架构检测以及更好的条件处理,MySQL 5.6可较高提升开发人员的灵活性。

  四大亮点:

  1.通过提升MySQL优化诊断来提供更好的查询执行时间和诊断功能

  ·子查询优化:通过在执行之前优化子查询来简化查询开发。新效率体现在查询执行时间内,显著提升结果集的选择、分类并返回交付。

  ·新增的指数条件下推(Index Condition Pushdown)和批量密钥访问(Batch Key Access)功能可提高选择查询量高达280倍。

  ·增强的优化诊断功能:通过EXPLAIN进行INSERT,UPDATE和DELETE操作。EXPLAIN计划以JSON格式输出,提供更精确的优化指标和更好的可读性,优化跟踪(Optimizer Traces)可跟踪优化决策过程。

  2.通过增强InnoDB存储引擎来提高性能处理量和应用可用性

  ·提升处理和只读量高达230%:通过InnoDB重构,以尽量减少传统线程,冲洗和清理互斥冲突和瓶颈,从而在高负重OLTP系统上,实现更好的并发性,进而针对只读工作负载(2)和处理,显著提高处理量。

  ·提高可用性:在线DDL操作可使数据库管理员添加索引和执行表变更,且应用程序仍可用于更新。

  ·InnoDB全文搜索:允许开发人员在InnoDB表上,建立全文索引,以表示基于文本的内容,并加快单词和短语的应用搜索。

  ·简单、关键值查找:通过熟悉的Memcached API,对InnoDB的灵活NoSQL访问,提供了InnoDB数据的简单、关键值查找。用户可实现在同一个数据库,关键值操作和复杂的SQL查询的“双赢”效应。

  3.通过MySQL复制的新功能以提高扩展性和高可用性

  ·自我修复功能的复制集群:新增的全球处理识别和使用程序(Global Transaction Identifiers and Utilities)能更方便的实现自动检测并从故障中恢复。碰撞安全复制功能(Crash-Safe Replication)使二进制日志和从动装载,在崩溃和恢复复制的情况下,能自动恢复到在复制流的正确位置上,而无需管理员干预。通过自动检测和警告错误,Checksums可跨集群维护数据的完整性。

  ·高性能复制集群:通过多线程的从动装置(3),Binlog组提交和基于行复制的优化(Binlog Group Commit and Optimized Row-Based Replication)使复制能力提高了5倍,让用户在向外扩展其跨商品系统的工作负载时,能够最大限度地提高复制性能和效率。.

  ·时间延迟复制:能防止发生在主机的操作失误,如意外删除表格等。

  4.增强的性能架构(PERFORMANCE_SCHEMA):新检测让用户能够更好地监控资源最密集的查询、对象、用户和应用程序。也可通过查询、线程、用户、主机和对象来实现新汇总统计信息概要。增强功能允许更简便的默认配置,且只耗费不到5%的成本。

0
相关文章