SQL调优指南—调优基本概念

简介: 分布式数据库相对单机数据库架构有差异,所有在单机数据库的调优经验上分布式数据库又有着自身特点的调优手段。在使用PolarDB-X的过程中,我们会基于统计信息、执行计划和并发策略和执行之后反馈的运行时长等信息,找出导致SQL执行慢的原因,针对性调优。

基本架构

PolarDB-X是一款计算存储分离的分布式数据库产品。当一条查询SQL(称为逻辑SQL)发往PolarDB-X计算节点(CN)时,PolarDB-X会将其分成可下推的、和不可下推的两部分,可下推的部分也被称为物理SQL。不可下推的SQL在CN上执行,下推的SQL在DN上执行。222.png

原则上,PolarDB-X在查询优化过程中尽可能按照以下规则做执行优化:

  • 尽可能将用户SQL下推到DN上执行,除了可以避免CN和DN建数据网络交互以外,还可以充分利用多分片并发执行的能力,利用各个DN资源,加速查询。
  • 对于无法下推的部分算子,优化器会选择最优的方式来执行,比如选择合适的算子执行、选择合适的并行度策略以及是否使用mpp执行。

除此之外,在执行优化过程中会考虑尽可能选择最佳索引。

基本概念

在SQL调优过程中我们还需要理解下列概念:

  • 逻辑SQL: 用户侧发起的查询SQL;
  • 物理SQL:SQL经过查询优化后,一般会拆分为可下推和不可下推的SQL,其中可下推的SQL是发往DN执行的,叫物理SQL。如果逻辑SQL被全部下推到DN执行,那么物理SQL等价于逻辑SQL。
  • 并行度: 指查询过程中数据并行执行的最大数目,对于CN来说就是利用多核能力多线程计算,对DN来说就是同时执行多个下推物理SQL的并行数。
  • 执行计划:逻辑SQL发送到CN节点,会经过解析优化生成可执行的计划树,计划树的每个节点代表是算子。一条可以通过执行计划初步断定查询的快慢,比如是否命中索引、算子选择是否合适等。
  • 索引:PolarDB-X一般分为局部索引和全局索引,局部索引指的是单个DN节点的索引(MYSQL索引),全局索引是指构建在多个DN上的分布式索引。选择合适的索引,可以大大提高PolarDB-X的检索速度。

一条慢查询可能和物理SQL执行快慢、并发度数量、执行计划和索引选择是否合适都有关系。所以在分布式数据库中,SQL调优的成本一般会比单机数据库高。

相关文章
|
供应链 安全 芯片
台积电7nm芯片断供影响分析:中国大陆半导体产业的挑战与机遇
近日,有关台积电可能断供中国大陆7nm芯片的消息引发了业界的广泛关注。这一事件不仅关系到全球半导体供应链的稳定性,也对中国大陆半导体产业的发展提出了新的挑战。本文将探讨这一事件背后的原因、可能的影响以及中国大陆半导体产业的应对策略。
717 0
|
iOS开发
iOS更新iOS15.0后APP图标变网格空白问题
iOS更新iOS15.0后APP图标变网格空白问题的解决
781 0
|
存储 移动开发 小程序
DingTalk「开发者说」|钉钉小程序开发实践
摘要:DingTalk「开发者说」是专为钉钉开发者打造的栏目,分享钉应用开发的实战技巧、技术架构、解决方案,致力于成为钉钉与开发者的连接桥梁。本篇分享主要内容包含移动端Web的特点,钉钉小程序的优势,钉钉小程序开发原则,开发中常见的问题,以及钉钉小程序未来规划。 分享人:宵何,钉钉小程序开发工具及研发链路技术负责人
73289 5
DingTalk「开发者说」|钉钉小程序开发实践
|
负载均衡 算法 前端开发
Nginx 面试 40 连问,快顶不住了~~(一)
Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。
Nginx 面试 40 连问,快顶不住了~~(一)
|
监控 搜索推荐 架构师
软件测试面试题及答案(史上最全)
软件测试面试题及答案(史上最全)
769 0
|
存储 SQL Cloud Native
细谈友邦人寿如何从传统数据库实现最佳上云
本篇内容将从3个部分为读者介绍关于友邦人寿从传统数据库迁移上云的实践,进一步介绍友邦人寿在传统IT基础设施的现状和挑战、迁移上云的过程及未来的演进和展望。
817 0
细谈友邦人寿如何从传统数据库实现最佳上云
|
存储 算法 前端开发
《存储漫谈Ceph原理与实践》第三章接入层3.2对象存储RGW(三)
《存储漫谈Ceph原理与实践》第三章接入层3.2对象存储RGW
《存储漫谈Ceph原理与实践》第三章接入层3.2对象存储RGW(三)
|
弹性计算 监控 负载均衡
什么是阿里云ESS?什么是弹性伸缩?
顾名思义,弹性伸缩就是根据您设置的伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。自动为您调整弹性计算资源大小,以满足您业务需求的变化。君哥的弹性伸缩设置监控项为伸缩组内ECS实例的vCPU使用率平均值,并假设触发弹性扩张的阈值为80%,触发弹性收缩的阈值为30%。
4438 0