前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >体验另类“MySQL”的极致性能

体验另类“MySQL”的极致性能

作者头像
用户5548425
发布2020-02-25 13:28:55
8110
发布2020-02-25 13:28:55
举报
文章被收录于专栏:韩锋频道韩锋频道

AnalyticDB,是阿里云推出的一款数据库产品,主打海量实时数据分析领域。说其是另类“MySQL”,是因为其兼容MySQL生态,可以像MySQL一样去使用,非常简洁方便。不久前,其还推出单机版规格,颇为惊艳,可以说把大数据的门槛大大降低了。正如上图所表现的,"大数据"这头大象也可以敏捷奔跑起来。假期无事,特针对AnalyticDB新推出的单机版与MySQL,在规模数据下的查询表现做了个对比分析。

《敏捷大数据》的时代到来

曾几何时,大数据的概念非常火热。但我们这里要看到,这里的大数据通常代表两层含义,一是所谓符合4V标准的数据;二是随之诞生的一些适合处理前者问题的技术。随着近些年来,数据在企业中扮演者越来越重要的地位,之前常见的一些“中小”数据,也逐步变成了大数据。此外,随着数字化浪潮的发展,数据在企业经营决策中扮演着愈发重要的地位,随之而来对数据计算的需求也越来越强烈。而之前谈到的大数据技术,并没有很好地跟上现实需求,其较高的技术门槛、离散的技术生态、非传统的使用方式都阻碍了快速普及。AnalyticDB的推出,正是看中了这一问题,以近似传统的使用方式,来处理现在面临的海量、实时类数据问题。进而,也提出了“敏捷大数据”的理念,摒弃传统大数据技术的繁复冗赘,而倡导以一种更加简洁的方式来使用数据。

1. 背景介绍:数据库新兵“ADB”

分析型数据库MySQL版(AnalyticDB for MySQL)是云端托管的PB级高并发实时数据仓库,是专注于服务OLAP领域的数据仓库。在数据存储模型上,采用关系模型进行数据存储,可以使用SQL进行自由灵活的计算分析,无需预先建模。利用云端的无缝伸缩能力,分析型数据库MySQL版在处理百亿条甚至更多量级的数据时真正实现毫秒级计算。其特点包括:

  • 极致性能 分析型数据库MySQL版运用新一代超大规模的MPP+DAG融合引擎,采用行列混存技术、自动索引、智能优化器等技术。针对复杂SQL查询速度相比传统的关系型数据库快10倍以上。此外,其采用的分布式架构可快速扩容至数千节点的超大规模,进一步提升速度。
  • 灵活部署 分析型数据库MySQL版,采用存储和计算分离架构,可根据需要调整节点数量和动态升降配实例规格。既可实现Scale Up,也可以实现Scale Out。方便用户根据自身情况进行选择。
  • 简单易用 分析型数据库MySQL版,全面兼容MySQL协议和SQL:2003,可很方便的融入MySQL生态体系。通过标准SQL和常用BI、ETL工具平台,可轻松使用分析型数据库MySQL版。
  • 海量规模 分析型数据库MySQL版是全分布式结构,无任何单点设计。整体系统可通过横向扩容来大幅度扩大存储规模及提升查询SQL性能和并发处理能力。其可实现数千节点,PB级规模的体量。

单机版介绍

AnalyticDB for MySQL单机版,于2019年12月底推出。其目的是大幅降低企业用户使用大数据的成本,可方便用户快速享受到数据实时分析所带来的技术红利。其推出的多种规格,可满足中小规模用户的数据分析需求。其核心特点如下:

  • 门槛降低 用户仅需之前约50%的成本,即可使用AnalyticDB。这将大大降低用户的成本投入。无论是小白用户入门大数据,还是既有用户新增测试、开发环境都是不错的选择。
  • 极速性能 在应对复杂SQL场景下,单机版虽较集群版性能有所降低,但其综合性能仍可达开源MySQL 10倍以上。特别适合于针对MySQL只读查询压力大的情况,可快速根治释放压力。
  • 使用灵活 用户可根据需要,随时选择使用更为强大的集群版,减少用户的前期投入。阿里云也将随后推出平滑迁移方案。
  • 免运维优化 AnalyticDB,采用开箱即用策略,免运维、免优化。可快速享受到极速性能所带来的红利。

2. 测试概述:ADB vs MySQL

1). 环境说明

  • SSD云盘IOPS在25000,高效云盘为5000。
  • RDS和ADB均为阿里云同地域的提供的默认配置。

2). 样本说明

测试样本采用常见的人力资源模型,数据采用了人工构造方式。

  • 数据结构 原生结构如下,ADB由于是分布式结构,需要定义分布键(使用了主键)。此外,MySQL后续做了结构优化,添加了部分索引。后续测试分两组对比。
  • 规模

3). 测试集说明

根据SQL特点,将其归纳为十个大类。每类抽象出有代表性的若干语句,作为测试语句。

4). 测试方法

  • 数据加载 使用原生MySQL的默认处理,insert into … values(),()方式插入。
  • 前置操作 插入后,进行了analyze table操作。
  • 测试操作 使用自定义脚本,进行多轮查询测试,并记录SQL执行时长。
  • 测试数据
    1. 为避免大数据传输影响,执行结果使用聚合操作后返回,部分结果会存在下推影响结果的情况。对MySQL和ADB影响一样。
    2. 所有测试,均进行三组,取执行时长的平均值。
    3. 所有数据的默认单位为毫秒(ms)。
  • 测试说明
    1. 单机版规格,性能较集群版有一定差距,且无法进行性能扩展。只能在有限程度做ScaleUp,因此对性能要求较高的用户,建议使用集群版。
    2. 由于ADB采用的分布式架构,集群内组件较多。在单机环境内部署完整环境,自身资源消耗比例较大。本组测试,只是为了对比同等资源下的MySQL与ADB的性能表现,对ADB而言远非最佳实践。
    3. 单机版规格后端使用高效云盘,其IO性能较SSD云盘差异巨大,这点也对测试结果造成较大影响。如考虑高性能,还是建议使用集群版(其后端为SSD云盘)。
    4. 针对MySQL的测试,使用了原始状态和优化后,分别进行了测试。5000万规模,因执行时间过长未进行MySQL原始状态的测试。ADB全程未经任何调优,为默认安装后的状态。

3. 测试结果:ADB vs MySQL

1). 结果概览

对比数据为MySQL/ADB,数字小于1,表示前者优于后者;数字大于1,表示后者优于前者。数据越大,差距越明显。图中灰色部分表示MySQL优于ADB的部分。

2). 分项说明

  • 简单查询

对于此类查询,基本不需要优化器更多优化,就是比拼数据提取的能力。ADB采用分片机制,类似于MySQL的“分库分表”,并行提取数据。

  • 排序

此部分,优化前后差异较大。上图为MySQL未优化的情况,理所当然使用了”Using filesort”,性能很差。在优化后,通过加入索引这一有序结构,可以大幅降低排序成本,性能良好。ADB是分布式架构,需要汇总后排序;而单机版受限架构,无法利用多物理节点的能力,表现一般。

  • 过滤

这一情况类似“简单查询”。在提取数据后,多一步CPU计算过滤过程,这一点单机版的ADB也没有太多优势。这里面比较特殊的是binary比较,引入后使用全表扫描,即使增加索引也效果有限。但ADB则表现优异,猜想是与其列式存储等因素有关。

  • 模糊查询

这一类查询,ADB有压倒性的优势。因与其列式存储等因素有关。

  • 逻辑条件 同"简单查询"。
  • 统计

这一组,也是ADB大优。原理就在于分布式架构与单体架构,及行式与列式存储的差异。

  • 分组

ADB胜出,原理同上组。

  • 关联

关联部分,ADB使用分布式架构,需要有分片间的数据交换等步骤,并最终使用Hash Join完成。而MySQL依托于索引有序结构,可使用Block Nested Loop快速获得数据。8.0的Hash Join也许对大表间的关联更有优势。

  • 集合

这一组也是ADB胜出,原因还是出于其分布式架构所致。

  • 其他

对于分页类的操作,在有索引的有序结构下,MySQL表现不错。ADB中规中矩。

4. 测试总结:ADB vs MySQL

一轮测试下来,对ADB有了更多的了解认识。作为新兴的数据库,对于实时分析类场景,这一产品颇有其特点。此外,其兼容MySQL生态,也很有吸引力,客户的大量软件资产,可以平滑迁移。在架构上,甚至可作为MySQL的从库存在,将复杂类的查询需求迁移上去,减轻主备库压力。可做到一套代码,适用多种场景。这远比之前那种消费到大数据平台,然后异步查询来的优雅。最后,总结下AnalyticDB的适用场景,及与MySQL、大数据平台的对比。(星号部分为计划发展中)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 韩锋频道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档