tencent cloud

文档反馈

开启或关闭并行查询

最后更新时间:2023-04-10 16:09:48

    云数据库 MySQL 支持并行查询能力,您可通过控制台或命令行调整相关参数,为实例开启或关闭并行查询功能。

    前提条件

    数据库版本:MySQL 8.0 内核版本20220831及以上。

    参数说明

    说明:

    主实例与只读实例均支持开启并行查询功能,但实例 CPU 核数需大于等于4。

    您可通过控制台或命令行调整参数 txsql_max_parallel_worker_threads 和 txsql_parallel_degree 不为0,来开启当前实例的并行查询功能。参数的相关信息和具体设置建议如下。
    参数信息

    参数 变量类型 作用域 默认值 取值范围 说明
    txsql_max_parallel_worker_threads Integer Global {MIN(DBInitCpu,0)} 0-{MAX(DBInitCpu-2,2)} 实例节点可用于并行查询的线程资源总数,设置为0则无并行线程可用,视为关闭并行查询功能。
    txsql_parallel_degree Integer Global/session 4 0 - 64 单条语句并行查询时可用的最大线程数(默认并行度)。设置为0时视为关闭并行查询功能。

    设置建议

    • 并行度规格限制:txsql_parallel_degree 参数的数值表明单条语句并行查询使用的最大线程数,即并行查询的默认并行度,建议并行度不要超过实例 CPU 核数的二分之一。为保证稳定性,CPU 核数小于4的小规格集群将禁用并行查询功能,您将无法在控制台或使用命令行调整并行查询相关参数。
    • SQL 语句在执行并行查询时将默认使用 txsql_parallel_degree 所设置的并行度,但用户可通过 hint 语句调整单条 SQL 语句的并行查询并行度,详细说明请参见 hint 语句控制
    • txsql_max_parallel_worker_threads 参数的值表明并行查询中实例可用于并行查询的线程数,txsql_max_parallel_worker_threads / txsql_parallel_degree 的值表明最多同时有多少条 SQL 语句可以执行并行查询。
    • txsql_max_parallel_worker_threads 与 txsql_parallel_degree 共同控制并行查询功能的开启与关闭,当任意一个参数设置为0时,表示关闭并行查询功能。

    云数据库 MySQL 也提供了多种参数对并行查询的执行条件进行设置,方便您对业务进行个性化适配,保证业务稳定运行。设置后,数据库将会对语句的执行代价,表的行数,单条语句执行并行计划时所使用的内存等条件进行判断,确认每一条 SQL 语句是否允许执行并行查询。相关参数说明如下:

    参数 变量类型 作用域 默认值 取值范围 说明
    innodb_txsql_parallel_partitions_per_worker Integer Global/Session 13 0-256 在切片数据的并行扫描中,每个线程扫描的平均分区数。
    txsql_optimizer_context_max_mem_size Integer Global/Session {MIN(DBInitMemory*52429,8388608)} 0-{DBInitMemory*52429} 单条语句可申请的并行查询计划环境最大内存限制。
    txsql_parallel_cost_threshold Integer Global/Session 50000 0-9223372036854476000 并行执行代价阈值,只有执行代价高于阈值的语句才会进行并行查询。
    txsql_parallel_exchange_buffer_size Integer Global/Session 1048576 65536-268435456 数据交换缓冲区大小。
    txsql_parallel_table_record_threshold Integer Global/Session 5000 0-9223372036854476000 并行表行计数阈值,只有行数高于阈值的表才能被选为并行表。
    注意:

    • 并行查询等所有参数均无需重启实例,设置后可即时生效。
    • 标有 session 作用域的参数表明该参数支持对单条语句进行设置。

    通过控制台开启或关闭并行查询

    您可通过 MySQL 控制台进入实例参数设置页面通过设置相关参数开启或关闭功能。

    • 设置 txsql_max_parallel_worker_threads 和 txsql_parallel_degree 不为0表示开启并行查询能力。
    • 设置 txsql_max_parallel_worker_threads 和 txsql_parallel_degree 任意一个为0表示关闭并行查询能力。

    也可设置相关执行条件参数。控制台参数设置页面如下图所示。详细操作方法请参考 设置实例参数

    通过 hint 语句对单条 SQL 语句指定并行执行方式

    云数据库 MySQL 支持对单条 SQL 语句进行指定并行执行方式。对单条 SQL 语句进行设置时,将采用 hint 语句的方式进行操作,详细方法请参照 hint 语句控制

    相关文档

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持