《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——三、SQL优化与慢查询解决(上)

简介: 《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——三、SQL优化与慢查询解决(上)

1. 查询流程和执行计划

 

• SQL语言完成用户和系统内部存储数据之间的交互。在执行阶段,AnalyticDB MySQL版中的查询,会首先被切分为多个Stage来执行,一个Stage就是执行计划中某一部分的物理实体。


image.png

 

• 在AnalyticDB MySQL架构中有三层:接入层、计算层、存储层,是计算存储分离架构。一条SQL语句执行过程,首先会进入接入层,经过解析器完成语句的解析生成执行计划,优化器对执行计划进行优化,形成逻辑执行计划。

 

分组聚合查询的处理流程,Controller节点会把查询的逻辑执行计划(Plan)分片下发到执行计划任务的各个节点上。

 

• Stage2由4个Task组成,并行执行数据的扫描、过滤以及局部聚合等操作。

• Stage1由2个Task执行,并行执行最终的聚合操作。

• Stage0由1个Task执行,负责汇总Stage1的2个Task生成的最终聚合结果。

 

2. 算子

 

一个算子负责完成一个基本的数据处理逻辑,一组算子按照执行计划完成数据的一组处理规则,参数名称与功能如下:

 

• Aggregation:通过sum()、count()、avg()等函数对数据进行聚合或分组聚合操作。

• DistinctLimit:对应SQL语句中的DISTINCT LIMIT操作。

• Filter:使用存储层数据的索引进行过滤。存储层数据没有索引,需要在计算层使用Filter算子进行过滤。

• Join:对应SQL语句中的Join操作。

• Project:对应SQL语句中对特定字段的投影操作,例如case when then控制流、concat()函数等。

• StageOutput:用于将当前Stage处理后的数据通过网络传输到下游Stage的节点。

• Sort:应SQL语句中ORDER BY子句的操作,执行ORDER BY字段的排序。

• TableScan:用于从数据源读取数据,如果需要过滤数据,那么数据过滤由底层数据源使用索引高效完成。

• TopN:对应SQL语句中的ORDER BY LIMIT m,n查询。

 

 

3. 影响查询性能的因素

 

影响查询性能的因素有:集群规格、节点数量、数据分布特征、数据量大小、查询并发度、查询复杂度。

 

1) 集群规格

 

• 不同集群规格的CPU核数、内存大小和数据存储介质等属性不同,处理子任务的能力也就不同,需要结合业务查询特征来选择集群规格。

• 以Join或分组聚合为主的业务查询会消耗较多的CPU和内存资源。

• 扫描数据和简单分组聚合操作的查询会消耗较多的磁盘I/O资源。

 

2) 节点数量

 

• AnalyticDB MySQL版使用了分布式数据处理架构,一条查询会被分解成多个Stage在不同的节点上并行执行。所以如果集群中的节点数量越多,AnalyticDB MySQL版处理查询的能力也会越强。用户可以根据实际的业务需求来决定集群节点的购买数量,更多详情,请参见创建集群。

• https://help.aliyun.com/document_detail/122234.html

 

3) 数据分布特征

 

• 由于使用了分布式数据处理架构,具备将一条查询分解到多个节点上并行执行的能力。

• 充分利用多节点来并行处理查询,还取决于数据在存储节点上的分布特征。

• 如果数据能够均匀分布在存储节点上,多个子任务在处理数据时,就能几乎同时结束任务。

• 数据分布不均匀,子任务在处理数据时会存在时间上的长尾,从而影响最终的查询效果。

 

4) 数据量大小

 

• 在处理查询时,通常不会将处理过程中的临时结果暂时写到磁盘里,而是尽量在内存中将所有数据处理掉。

• 如果查询需要处理的数据量较大,就可能会长时间占用大量的资源,导致整体查询效率降低,进而影响最终的查询效果。

• 表存储的数据量较大,在执行索引过滤、明细数据读取等操作时会出现争抢磁盘I/O资源,导致查询变慢。

 

5) 查询并发度

 

• 能同时处理的查询数量也会存在上限。如果查询的并发度过高,集群节点资源已到达瓶颈,那么后台的查询就会出现较长时间的排队,影响整体查询效果。

 

6) 查询复杂度

 

• 查询的复杂度不同造成的压力也不同。

• 如果查询中过滤条件过于复杂,会在数据过滤时对存储节点造成一定压力。

• 如果查询中Join算子过多,数据可能需要在不同节点间进行多次的网络传输,造成网络阻塞。

• 如果查询中分组字段过多,也会占用较多的内存资源。

 

 

更多精彩内容,欢迎观看:

《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——三、SQL优化与慢查询解决(下):https://developer.aliyun.com/article/1222968?groupCode=certification

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1849 152
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1255 156
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
1007 11
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
821 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
1063 15
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
753 59
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
516 13

热门文章

最新文章

推荐镜像

更多