PolarDB-X 1.0-用户指南—SQL调优指南—SQL调优基础概念

简介: 在使用PolarDB-X的过程中,可能出现性能不符合预期的慢SQL。SQL调优的过程,就是通过分析SQL的执行计划、各阶段运行时长等信息,找出导致SQL执行慢的原因,继而解决问题。

在使用PolarDB-X的过程中,可能出现性能不符合预期的慢SQL。SQL调优的过程,就是通过分析SQL的执行计划、各阶段运行时长等信息,找出导致SQL执行慢的原因,继而解决问题。

PolarDB-X架构

PolarDB-X是一个支持计算存储分离架构的数据库产品。当一条查询SQL(称为逻辑SQL)发往PolarDB-X节点时,PolarDB-X会将其分成可下推的、和不可下推的两部分,可下推的部分也被称为物理SQL。

custom import 1.png

原则上,PolarDB-X会:

  • 尽可能将用户SQL下推到MySQL上执行。
  • 对于无法下推的部分算子,选择最优的方式来执行。

下推和执行计划

EXPLAIN指令将会打印SQL的执行计划。它的用法非常简单:只要在SQL最前面加上EXPLAIN即可。下面通过几个例子来展示PolarDB-X的执行方式。

示例一:


> explain select c_custkey, c_name, c_address from customer where c_custkey = 42;
LogicalView(tables="customer_2", sql="SELECT `c_custkey`, `c_name`, `c_address` FROM `customer` AS `customer` WHERE (`c_custkey` = ?)")

对于带有主键条件的查询来说,PolarDB-X只要将SQL直接下发到主键对应的分片上即可。因此,执行计划中只有一个LogicalView算子,下发的物理SQL基本和逻辑SQL是一样的。

LogicalView算子代表下推到MySQL执行的查询,请参见执行计划和基本算子

示例二:


> explain select c_nationkey, count(*) from customer group by c_nationkey;
HashAgg(group="c_nationkey", count(*)="SUM(count(*))")
  Gather(concurrent=true)
    LogicalView(tables="customer_[0-7]", shardCount=8, sql="SELECT `c_nationkey`, COUNT(*) AS `count(*)` FROM `customer` AS `customer` GROUP BY `c_nationkey`")

上述查询会统计:各个国家的客户数量分别有多少?考虑到分库分表,可以将它分成两个阶段来进行:

  1. 在各个分表上进行COUNT(*)统计(这一步可被下推到MySQL上执行)。
  2. 将结果汇总,将COUNT(*)的结果执行SUM(),得到最终的结果(这一步需要PolarDB-X节点来完成)。

从执行计划上,也可以看出这一点。其中:

  • LogicalView表示下发到各个分片的SQL按nation分组进行 COUNT(*)统计。
  • Gather算子表示收集各个分片的结果。
  • HashAgg是聚合(Aggregate)的一种实现方式,以c_nationkey作为分组键将 COUNT(*)的结果求SUM()

更多的例子,详情请参见执行计划和基本算子

相关文章
|
5月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
479 3
|
9月前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
591 1
|
SQL 存储 关系型数据库
关系型数据库SQLserver基本 SQL 操作
【7月更文挑战第28天】
221 4
|
SQL 关系型数据库 分布式数据库
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
376 14
|
SQL 安全 关系型数据库
关系型数据库SQL server DELETE 语句
【8月更文挑战第3天】
476 10
|
SQL 关系型数据库 数据库
关系型数据库SQL server UPDATE 语句
【8月更文挑战第3天】
649 10
|
SQL 关系型数据库 BI
关系型数据库SQL server INSERT 语句
【8月更文挑战第3天】
508 9
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之遇到慢SQL问题,该如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
SQL 关系型数据库 数据库
|
SQL 关系型数据库 数据库

热门文章

最新文章

相关产品

  • 云原生分布式数据库 PolarDB-X