Aurora 性能遭社区质疑,超 MySQL 5 倍但未公布详情

  • 郭蕾

2014 年 11 月 19 日

话题:MySQLDevOps语言 & 开发架构

Amazon Aurora 是亚马逊的高性能的关系型数据库引擎,它号称结合了商用数据库以及开源数据库的优点,在简单易用、高性能的基础上提供高性价比的服务。Amazon Aurora 设计兼容 MySQL 5.6,所以已经存在的 MySQL 应用程序和工具可以无缝迁移到 Aurora 中。据亚马逊称,Aurora 每秒钟可执行 10 万次更新操作,并且每秒钟可进行 50 万次查询操作,在同等的硬件条件下是 MySQL 的 5 倍。

但是 Aurora 的具体实现细节在 AWS re:Invent 并未详细提及,目前只有在官方的FAQ 页面简单描述了 Aurora 的存储引擎以及数据模型:

Amazon Aurora 存储引擎兼容使用 InnoDB 存储引擎的 MySQL 5.6 版本,Aurora 并不支持所有的 MySQL 功能,比如 MyISAM。

Amazon Aurora 支持两种类型的数据复制,其中包括基于 MySQL 的binlog(用于记录数据库数据的更新)的读复制。另外的一种方式是通过与主实例共享底层的 volumn。

Aurora 取得如此出色成绩的原因是因为 Aurora 数据库引擎集成了基于 SSD 的虚拟存储专用负载层,以减少存储系统的写入压力,最小化锁竞争以及因数据库线程创建而延误的时间。

而根据官方资料推断,Aurora 应该是基于 MySQL 5.6,同时对存储引擎做了修改优化,并且存储引擎也应该是基于 InnoDB。在Quora上,阿里巴巴的工程师韩富晟也做了同样的推断。同时他认为 Aurora 除了优化存储引擎外,还应该改进了 SQL 的优化以及执行过程。

另外,在 Quora 的回复中,韩富晟同样质疑了 Aurora 性能测试的准确性,他认为 5 倍的数据不可信。虽然亚马逊表示是在同样的硬件条件下进行测试,但是 Aurora 可能是与未调优的 MySQL 做对比。同样,Dimitri也认为 RDS Aurora 的测试数据很可笑,除了高于 MySQL 性能 5 倍外的宣言,没有任何的测试细节。而早在一年前,MySQL 5.7 就宣布查询速度可以达到每秒 50 万次,并且具体的测试细节都在博客中做了记录。在最新的 MySQL 5.7 版本中,查询速度已经可以达到 64 万 /s。如果再对 SQL 层做下优化,比如使用 InnoDB 的 Memcached 插件,那 QPS 应该可以达到 100 万。

期待 Amazon 公布更多地 Aurora 的细节以解大家的疑惑。

MySQLDevOps语言 & 开发架构