开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

PolarDB-X提供的SQL限流能力,执行过程中,可能出现的慢SQL的原因,有哪些?

已解决

PolarDB-X提供的SQL限流能力,执行过程中,可能出现的慢SQL的原因,有哪些?

展开
收起
云上静思 2022-07-11 19:17:26 607 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    可能存在慢SQL的原因,分为如下三类:

    1. 业务问题:明显的数据倾斜、不合理的分片策略设置、数据返回过多等和业务使用相关问题。

      • 在不合理分片策略的情况下,有可能出现某一个分片里的数据量非常多,某些分片的数据量非常少。一旦某一个SQL落到数据非常多的分片,就可能占用比较多的查询时间,或者产生较大的数据扫描IO,成为整个SQL执行的瓶颈点。 这种情况下,我们需要对整个表结构进行优化调整。

      • 对于一些业务使用方面的问题,比如基于某个列进行查询但该列缺少全局二级索引,导致很多不必要的分片扫描,占用了较多的CN的CPU资源。这种情况下,需要进行SQL的优化或者创建一些索引来对该问题进行优化。

      • 对于业务或SQL本身需要返回过多数据的情况,我们推荐置一个合理的限流规则(比如限定并发度),避免过多的同类SQL占用过多的资源。

    2. 系统问题:流量太大,资源成为瓶颈或者网络抖动造成的问题。

      • 对于资源瓶颈的情况,我们推荐采用弹性扩展的方式来增加更多机器,对问题进行优化。

      • 对于网络抖动导致延迟变大的情况,需要检查网络配置是否正确,或者网络中间的一些组件是否存在问题。

    3. 执行问题:如选错索引,选错Join类型或顺序等问题。

    由于业务SQL到了PolarDB-X的CN节点后,会对SQL进行解析优化,生成相应的执行计划。在这个过程中,PolarDB-X会根据统计信息,选择一个合适的执行计划。如果执行统计信息过期或不准确,就可能出现选错索引、选错Join类型或顺序等问题,也会导致慢SQL。在这种情况下,我们需要对SQL进行进一步分析优化或改写,以解决慢SQL的问题。

    以上内容摘自《PolarDB-X 从入门到实战》电子书,点击https://developer.aliyun.com/ebook/download/7674可下载完整版

    2022-07-12 14:52:04
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 相关电子书

    更多
    SQL Server在电子商务中的应用与实践 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载

    相关镜像