文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

并行查询优化

可获得性

本特性自MogDB 5.0.0版本开始引入。

特性简介

MogDB 5.0版本引入了并行 sort merge join的功能,主要用于优化连接操作的执行速度。在执行连接操作时,当系统配置允许并行执行,并且执行计划适合并行执行时,可以利用多个线程同时进行扫描和匹配关联列,从而提升连接操作的执行效率。

客户价值

通过并行 sort merge join的功能,MogDB 5.0版本能够更好地应对大规模数据的连接操作需求,提供更高的查询性能和更快的执行速度。这一特性的引入,为用户提供了更强大的数据处理能力和更优化的查询体验。

特性描述

并行 sort merge join是一种在执行连接操作时提高效率的优化方法。传统的sort merge join是将关联表的关联列各自排序后,按顺序逐行扫描并匹配数据。虽然保证了有序性,但是效率较低。而并行查询优化则提供了并行执行sort merge join的能力。通过利用多个工作线程同时与关联表数据进行匹配,可以提高资源利用率,从而提升sort merge join的查询性能。

具体来说,当系统配置允许并行执行,并且执行计划适合并行执行时,MogDB可以利用多个线程并行扫描和匹配关联列的数据。这样可以加快连接操作的执行速度,提高查询效率。

特性增强

无。

特性约束

  • 需要打开并行开关,即设置query_dop参数值大于1。
  • 不支持JOIN_UNIQUE_OUTER、JOIN_FULL以及JOIN_RIGHT场景下的多表查询操作。

依赖关系

无。

示例

  1. 创建表,并插入数据。

    CREATE TABLE MogDB_parallel_merge_join(id int );
    INSERT INTO MogDB_parallel_merge_join VALUES ( generate_series ( 1, 1000000));
  2. 创建索引。

    CREATE INDEX index_parallel_merge_join ON MogDB_parallel_merge_join(id);
  3. 收集统计信息。

    analyze MogDB_parallel_merge_join;
  4. 开启并行查询开关,设置query_dop参数值大于1。

    set query_dop = 4;
  5. 通过explain查看merge join为并行查询。

    EXPLAIN (COSTS OFF ) SELECT * FROM MogDB_parallel_merge_join t1, MogDB_parallel_merge_join t2 WHERE t1.id = t2.id order by t1.id limit 10;

    回显类似如下信息:

    QUERY PLAN                                                                                                        
    ------------------------------------------------------------------------------------------------------------------
    Limit                                                                                                             
      - >  Sort                                                                                                        
            Sort Key: t1.id                                                                                           
            - >  Streaming(type: LOCAL GATHER dop: 1 / 4)                                                                
                  - >  Limit                                                                                           
                        - >  Merge Join                                                                                
                              Merge Cond: (t1.id = t2.id)                                                             
                              - >  Index Only Scan using index_parallel_merge_join on mogdb_parallel_merge_join t1     
                              - >  Full Index Only Scan using index_parallel_merge_join on mogdb_parallel_merge_join t2

相关页面

query_dop

Copyright © 2011-2024 www.enmotech.com All rights reserved.