AnalyticDB MySQL版重磅发布智能建模诊断与优化功能

简介: 云原生数据仓库AnalyticDB MySQL版提供的智能建模诊断与优化功能,主要分为「冷热数据优化」、「无效索引优化」、「分布键优化」三大功能,目的是帮助客户降低数据/索引的存储成本,提高Join场景性能。

随着客户各类数据分析业务的丰富和发展,数据库所承载的查询数量和复杂度都会持续增加,特别是对于数据库表结构的设计和优化,往往对数据库整体使用成本和查询性能有较大影响。想做好相关的库表结构设计和优化,用户往往需要关注以下几个部分:

  • 需要了解引擎架构:用户往往需要对数据库引擎的存储和计算架构特点有一定的了解,才能和业务的数据分布特征以及业务场景特征完美结合,来进行数据建模,从而设计出符合引擎架构特点的表结构。
  • SQL特性差异较大:即席查询的SQL往往特性差异较大,包括参与Join的表个数、Join条件、分组聚合的字段个数以及过滤条件等。
  • 数据特征变化较快:用户的数据分布特征是会随着业务特征的变化而变化的,如果一直按照最初的建模方式和SQL语句,也是无法保障能发挥出SQL引擎的最大优势,数据特征或者业务模型的变化,都会导致SQL性能回退。

基于此,AnalyticDB MySQL版(新一代云原生实时数据仓库,语法兼容MySQL,以下简称ADB)为用户提供了高效且智能化的「智能建模诊断与优化」功能,直观的为用户提供相关调优的建议,降低用户使用成本,提高用户使用ADB的效率。本功能通过对用户SQL查询所使用到的数据表、索引、查询性能的历史信息进行统计,在此基础上进行智能分析并提供调优建议,本文介绍如何查看和和使用相关建议。


调优建议类型

冷热分层优化:

  • 弹性实例支持数据存储的冷热分离配置(https://help.aliyun.com/document_detail/189727.html),冷数据存储到低成本的存储介质上,可以降低整体使用成本,本项建议分析数据表的使用情况,对于长期未使用的数据表,提出移至冷存的建议。
  • 本建议的优化单位为一个数据表的整体,优化后数据表存储成本会降低;若再次查询该数据表,查询时间会增长。

很多业务 BI 分析查询具有强烈的周期性,很多数据表只有每个月、每个季度才会用到一次。像这样低频使用的数据表完全可以利用弹性实例提供的冷热数据分离存储的功能,在不使用的时候先移至冷存,降低存储成本。只在使用的时候才移至热存。

1.png

如上图所示,我们对弹性实例利用冷热分离存储建议可以获得的潜在收益进行了统计。可以看到60%的实例可以通过本建议的提示,将 15 天未使用的数据表移至冷存,节省 3 成以上的热存空间,降低存储成本。


无效索引优化:

  • AnalyticDB MySQL版通过增加数据索引提高扫描数据的速度,达到查询性能的提示(https://help.aliyun.com/document_detail/296045.html)。数据索引也会占用磁盘空间,提高使用成本。本项建议分析数据索引的使用情况,对于长期未使用的数据索引,提出考虑删除的建议。
  • 本建议的优化单位为一个列的数据索引,优化后数据索引的存储成本会降低;若查询再次使用改数据列进行过滤操作,查询时间会增长。

数据库建表时默认对全部数据列进行索引,这样可以极大的简化用户建表时的负担,无需用户提前预知业务查询的特性,保证查询性能最大化。但与此同时,实际业务往往只会用到几个列的索引进行查询和数据过滤,长期无用的索引反而增加了存储的成本。

2.png

如上图所示,我们对线上实例利用索引优化建议可以获得的潜在收益进行了统计。可以看到50%的实例可以通过本建议的提示,将 15 天未使用的索引进行删除,节省 3 成以上的热存空间,降低存储成本。


分布键优化:

  • AnalyticDB MySQL版的查询执行依赖分布式计算和存储的架构(https://help.aliyun.com/document_detail/211215.html),特别是进行JOIN、聚合等计算时,往往需要通过网络传输对数据进行分布,合理选择数据表分布列可以减少网络开销,提高查询效率。如果数据表的分布列和实际查询的数据分布特征不一致,就会造成查询时间增长、查询效率降低等问题。本项建议分析数据查询实际需要使用的分布列与数据表定义的分布列的差异,提出考虑改变数据表分布列的建议。
  • 分布键优化建议的优化单位为表,也即对整张表的分布列进行优化,优化后涉及到该表分布列的相关查询,性能一般会增加;若同一张表同时有其他涉及到非分布列的查询存在,就会导致分布列选择的矛盾,我们的算法会按照整个库级别查询最优目标,使用优化算法选择每张表的最优分布列。
  • 下面列举两个简单的例子,我们的测试表A和表B分别有5百万行的数据,第一个例子,对于JOIN查询:
SELECT*FROM A INNER JOIN B ON A.order_id= B.order_idLIMIT1000;

我们对比两种情况:1. 表A按照自增id分布;2.表A按照JOIN列order_id分布,这里表B假设已经按照order_id分布。对于这两种情况,分别执行查询,测试结果是表A按照JOIN列order_id分布,查询时间会快大约30%,原因就是JOIN前无需进行网络传输对数据重分布。第二个例子,对于聚合查询:

SELECT order_id, max(total)FROM(SELECT order_id, sum(amount)AS total
FROM A
GROUPBY order_id
)

我们对比两种情况:1. 表A按照自增id分布;2.表A按照聚合列order_id分布。对于这两种情况,分别执行查询,测试结果是表A按照聚合列order_id分布,查询时间会快大约60%,同样是因为节省了数据重分布的网络传输时间,计算节点可以直接在本地进行聚合操作。


用户界面指南

用户通过控制台左边栏「诊断与优化」 -> 「库表结构调优」分页访问该功能

可采纳建议的查看

可用优化建议如下图所示,每条建议包含建议 ID, 建议类型,建议对应的 SQL, 给出建议的原因,建议收益估算等信息。其中建议对应的SQL为应用建议需要变更的表和相应定义等。建议优化收益为基于历史数据统计的预估值,非实时统计的准确值,仅供参考。

3.png


一键应用优化建议

用户点击“一键应用”按钮,即表示同意采纳该优化建议,并将相应变更的 SQL 下发到实例进行执行,下发后改建议会出现在“已采纳建议”分页中。下发的建议如同在客户端执行相应 SQL,不支持撤销操作,请谨慎使用。

4.png


已采纳建议的查看

用户可以按采纳建议日期和时间查询已采纳的建议;建议 SQL 下发后,需要数据表完成 build 方可完成应用,build 操作是数据库系统按一定规则自动触发的,未触发前,相应建议处于“运行中”的状态,触发后变为“已完成状态”

5.png


开启和关闭优化建议功能

6.png

用户可以通过开关按钮,打开和关闭优化建议的显示功能。


欢迎使用,并提供您宝贵的建议和反馈!

本功能现面向有意向使用的客户进行开放,欢迎进钉钉支持群联系我们。

7.png

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
4天前
|
SQL 存储 关系型数据库
实时数仓 Hologres产品使用合集之有没有MySQL那样的AUTOINCREMENT字段来实现自增ID功能
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
41 5
|
4天前
|
SQL JSON 数据库
实时数仓 Hologres产品使用合集之写入是否支持分区自动路由功能
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
15 0
|
4天前
|
存储 监控 数据挖掘
如何评估并优化OLAP系统的性能和可扩展性?
【5月更文挑战第14天】如何评估并优化OLAP系统的性能和可扩展性?
7 0
|
4天前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL版集群版本支持库表恢复功能的版本要求是什么?
【5月更文挑战第13天】PolarDB MySQL版集群版本支持库表恢复功能的版本要求是什么?
10 0
|
4天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在DataWorks中,查看ODPS表的OSS对象如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
29 1
|
4天前
|
分布式计算 DataWorks MaxCompute
DataWorks产品使用合集之在DataWorks中,将数据集成功能将AnalyticDB for MySQL中的数据实时同步到MaxCompute中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
27 0
|
4天前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用合集之PolarDB MySQL标准版中带有分区功能吗
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
4天前
|
数据管理 关系型数据库 MySQL
数据管理DMS产品使用合集之DMS可以接入其他平台的MySQL数据库,是否还支持无感知变更功能
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
4天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
25 0
|
4天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
13 0

热门文章

最新文章

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 推荐镜像

    更多
    http://www.vxiaotou.com