更新时间:2026-06-11 GMT+08:00
分享

查看并修改Doris变量

操作场景

MRS 3.6.0.1及之后版本,在Doris中变量直接控制了查询性能、资源分配及连接行为等。Doris中变量的修改分为会话级与全局级。

查看及修改Doris变量

在MySQL客户端连接Doris后(具体操作请参见快速使用Doris),即可执行变量相关操作:

  • 查看Doris变量
    • 查看所有变量:
      SHOW VARIABLES;
    • 精确/模糊过滤:
      SHOW VARIABLES LIKE '%variable_name%';

      例如,查看变量“exec_mem_limit”:

      SHOW VARIABLES LIKE '%exec_mem_limit%';

      例如,查看到的变量值为:

      +----------------+--------------+---------------+---------+
      | Variable_name  | Value        | Default_Value | Changed |
      +----------------+--------------+---------------+---------+
      | exec_mem_limit | 137438953472 | 2147483648    | 1       |
      +----------------+--------------+---------------+---------+
      1 row in set (0.01 sec)
  • 修改变量

    Doris的变量分为Session(会话) 和 Global(全局) 两个作用域。

    • 修改会话级变量(SET)
      • 语法
        SET variable_name = value;
      • 生效范围

        修改会话级变量仅对当前连接生效。

      • 使用场景

        针对特定SQL进行性能调优(例如临时加大内存)、开启Profile分析日志。

      例如,将变量“exec_mem_limit”的值设置为128GB:

      1. 查看“exec_mem_limit”变量:
        SHOW VARIABLES LIKE '%exec_mem_limit%';

        例如,查看到的变量值为:

        +----------------+------------+---------------+---------+
        | Variable_name  | Value      | Default_Value | Changed |
        +----------------+------------+---------------+---------+
        | exec_mem_limit | 2147483648 | 2147483648    | 0       |
        +----------------+------------+---------------+---------+
        1 row in set (0.02 sec)
      2. 设置会话级变量“exec_mem_limit”值为128GB:
        SET exec_mem_limit = 137438953472;
      3. 查看修改后的“exec_mem_limit”变量值:
        SHOW VARIABLES LIKE '%exec_mem_limit%';

        查看到的变量值为:

        +----------------+--------------+---------------+---------+
        | Variable_name  | Value        | Default_Value | Changed |
        +----------------+--------------+---------------+---------+
        | exec_mem_limit | 137438953472 | 2147483648    | 1       |
        +----------------+--------------+---------------+---------+
        1 row in set (0.00 sec)
    • 修改全局级变量(SET GLOBAL)
      • 语法
        SET GLOBAL var_name = value;
      • 生效范围

        修改全局级变量对当前会话及所有后续新连接生效。

      • 使用场景

        集群初始化、统一修改时区、全局开启新优化器等。

      • 持久化说明

        SET GLOBAL修改的值保存在内存中,重启FE后会失效。

      例如,将变量“exec_mem_limit”的设置为128GB:

      1. 查看“exec_mem_limit”变量:
        SHOW VARIABLES LIKE '%exec_mem_limit%';

        例如,查看到的变量值为:

        +----------------+------------+---------------+---------+
        | Variable_name  | Value      | Default_Value | Changed |
        +----------------+------------+---------------+---------+
        | exec_mem_limit | 2147483648 | 2147483648    | 0       |
        +----------------+------------+---------------+---------+
        1 row in set (0.01 sec)
      2. 设置全局级变量“exec_mem_limit”值为128GB:
        SET global exec_mem_limit = 137438953472;
      3. 查看修改后的“exec_mem_limit”变量值:
        SHOW VARIABLES LIKE '%exec_mem_limit%';

        查看到的变量值为:

        +----------------+--------------+---------------+---------+
        | Variable_name  | Value        | Default_Value | Changed |
        +----------------+--------------+---------------+---------+
        | exec_mem_limit | 137438953472 | 2147483648    | 1       |
        +----------------+--------------+---------------+---------+
        1 row in set (0.00 sec)

Doris常见变量介绍

表1 Doris常见变量

变量名称

变量说明

默认值

exec_mem_limit

单个查询在单个BE上的内存上限,遇到“Memory limit exceeded”时需调大该值。

2G

query_timeout

数据查询最大执行时间,对于导出大批量数据的长任务需调大该值。

900 (s)

enable_spill

当内存不足时允许中间数据落盘,防止大查询导致 OOM。

false

wait_timeout

会话空闲超时时间,防止空闲连接占用资源。

28800 (s)

enable_insert_strict

是否开启严格模式。如果希望忽略少量数据格式错误使得数据导入执行成功,可设置该参数值为“false”。

true

enable_profile

需排查慢SQL详细耗时时,可设置该参数值为“true”,即可在WebUI页面查看。

false

time_zone

用于设置时区,影响时间函数的计算,建议进行全局(global)设置。

xxx

auto_broadcast_join_threshold

广播连接的内存阈值比例。

0.8

相关文档