系统变量
StarRocks 提供了许多系统变量,可以根据您的需求进行设置和修改。本节介绍了 StarRocks 支持的变量。您可以通过在 MySQL 客户端上运行 SHOW VARIABLES 命令来查看这些变量的设置。您还可以使用 SET 命令来动态设置或修改变量。您可以使这些变量在整个系统范围内、仅在当前会话中或仅在单个查询语句中生效。
StarRocks 中的变量参考了 MySQL 中的变量集,但 某些变量仅与 MySQL 客户端协议兼容,在 MySQL 数据库中不起作用。
注意
任何用户都有权运行 SHOW VARIABLES 并在会话级别使变量生效。但是,只有具有 SYSTEM 级 OPERATE 权限的用户才能使变量全局生效。全局生效的变量对所有未来的会话(不包括当前会话)生效。
如果您想为当前会话进行设置更改,并使该设置更改也应用于所有未来的会话,您可以进行两次更改,一次不带
GLOBAL
修饰符,一次带GLOBAL
修饰符。例如SET query_mem_limit = 137438953472; -- Apply to the current session.
SET GLOBAL query_mem_limit = 137438953472; -- Apply to all future sessions.
变量层级和类型
StarRocks 支持三种类型的变量(级别):全局变量、会话变量和 SET_VAR
提示。它们的层级关系如下
- 全局变量在全球范围内生效,可以被会话变量和
SET_VAR
提示覆盖。 - 会话变量仅在当前会话中生效,可以被
SET_VAR
提示覆盖。 SET_VAR
提示仅在当前查询语句中生效。
查看变量
您可以使用 SHOW VARIABLES [LIKE 'xxx']
查看全部或部分变量。例子
-- Show all variables in the system.
SHOW VARIABLES;
-- Show variables that match a certain pattern.
SHOW VARIABLES LIKE '%time_zone%';
设置变量
全局设置变量或为单个会话设置变量
您可以设置变量以 全局 生效或 仅在当前会话 生效。当设置为全局时,新值将用于所有未来的会话,而当前会话仍使用原始值。当设置为“仅当前会话”时,变量将仅在当前会话中生效。
通过 SET <var_name> = xxx;
设置的变量仅对当前会话生效。例子
SET query_mem_limit = 137438953472;
SET forward_to_master = true;
SET time_zone = "Asia/Shanghai";
通过 SET GLOBAL <var_name> = xxx;
设置的变量全局生效。例子
SET GLOBAL query_mem_limit = 137438953472;
以下变量仅全局生效。它们不能对单个会话生效,这意味着您必须对这些变量使用 SET GLOBAL <var_name> = xxx;
。如果您尝试为单个会话设置此类变量 (SET <var_name> = xxx;
),则会返回错误。
- activate_all_roles_on_login
- character_set_database
- default_rowset_type
- enable_query_queue_select
- enable_query_queue_statistic
- enable_query_queue_load
- init_connect
- lower_case_table_names
- license
- language
- query_cache_size
- query_queue_fresh_resource_usage_interval_ms
- query_queue_concurrency_limit
- query_queue_mem_used_pct_limit
- query_queue_cpu_used_permille_limit
- query_queue_pending_timeout_second
- query_queue_max_queued_queries
- system_time_zone
- version_comment
- version (版本)
此外,变量设置还支持常量表达式,例如
SET query_mem_limit = 10 * 1024 * 1024 * 1024;
SET forward_to_master = concat('tr', 'u', 'e');
在单个查询语句中设置变量
在某些情况下,您可能需要专门为某些查询设置变量。通过使用 SET_VAR
提示,您可以设置仅在单个语句中生效的会话变量。
StarRocks 支持在以下语句中使用 SET_VAR
;
- SELECT
- INSERT (从 v3.1.12 和 v3.2.0 开始)
- UPDATE (从 v3.1.12 和 v3.2.0 开始)
- DELETE (从 v3.1.12 和 v3.2.0 开始)
SET_VAR
只能放在上述关键字之后,并用 /*+...*/
括起来。
示例
SELECT /*+ SET_VAR(query_mem_limit = 8589934592) */ name FROM people ORDER BY name;
SELECT /*+ SET_VAR(query_timeout = 1) */ sleep(3);
UPDATE /*+ SET_VAR(insert_timeout=100) */ tbl SET c1 = 2 WHERE c1 = 1;
DELETE /*+ SET_VAR(query_mem_limit = 8589934592) */
FROM my_table PARTITION p1
WHERE k1 = 3;
INSERT /*+ SET_VAR(insert_timeout = 10000000) */
INTO insert_wiki_edit
SELECT * FROM FILES(
"path" = "s3://inserttest/parquet/insert_wiki_edit_append.parquet",
"format" = "parquet",
"aws.s3.access_key" = "XXXXXXXXXX",
"aws.s3.secret_key" = "YYYYYYYYYY",
"aws.s3.region" = "us-west-2"
);
您还可以在单个语句中设置多个变量。例子
SELECT /*+ SET_VAR
(
exec_mem_limit = 515396075520,
query_timeout=10000000,
batch_size=4096,
parallel_fragment_exec_instance_num=32
)
*/ * FROM TABLE;
将变量设置为用户属性
您可以使用 ALTER USER 将会话变量设置为用户属性。从 v3.3.3 开始支持此功能。
示例
-- Set the session variable `query_timeout` to `600` for the user jack.
ALTER USER 'jack' SET PROPERTIES ('session.query_timeout' = '600');
变量描述
变量 按字母顺序 描述。带有 global
标签的变量只能全局生效。其他变量可以全局生效,也可以在单个会话中生效。
activate_all_roles_on_login (global)
- 描述:是否在用户连接到 StarRocks 集群时为 StarRocks 用户启用所有角色(包括默认角色和授予的角色)。
- 如果启用 (
true
),则在用户登录时激活该用户的所有角色。这优先于 SET DEFAULT ROLE 设置的角色。 - 如果禁用 (
false
),则激活 SET DEFAULT ROLE 设置的角色。
- 如果启用 (
- 默认值:false
- 引入于:v3.0
如果您想在会话中激活分配给您的角色,请使用 SET ROLE 命令。
auto_increment_increment
用于 MySQL 客户端兼容性。没有实际用途。
autocommit
用于 MySQL 客户端兼容性。没有实际用途。
chunk_size
- 描述:用于指定查询执行期间每个节点传输的单个数据包的行数。默认值为 4096,即源节点生成的每 4096 行数据被打包并发送到目标节点。较大的行数将提高大数据量场景中的查询吞吐量,但可能会增加小数据量场景中的查询延迟。此外,它可能会增加查询的内存开销。我们建议将
batch_size
设置在 1024 到 4096 之间。 - 默认: 4096
big_query_profile_threshold
-
描述:用于设置大查询的阈值。当会话变量
enable_profile
设置为false
并且查询所花费的时间超过变量big_query_profile_threshold
指定的阈值时,会为该查询生成一个 profile。注意:在 v3.1.5 到 v3.1.7 以及 v3.2.0 到 v3.2.2 版本中,我们引入了
big_query_profile_second_threshold
用于设置大查询的阈值。在 v3.1.8、v3.2.3 和后续版本中,此参数已替换为big_query_profile_threshold
,以提供更灵活的配置选项。 -
默认: 0
-
单位:秒
-
数据类型:字符串
-
引入于:v3.1
catalog
- 描述:用于指定会话所属的 catalog。
- 默认值:default_catalog
- 数据类型:字符串
- 引入于:v3.2.4
cbo_decimal_cast_string_strict
- 描述:控制 CBO 如何将数据从 DECIMAL 类型转换为 STRING 类型。如果此变量设置为
true
,则 v2.5.x 及更高版本中内置的逻辑占优势,并且系统实现严格转换(即,系统根据比例长度截断生成的字符串并填充 0)。如果此变量设置为false
,则早于 v2.5.x 的版本中内置的逻辑占优势,并且系统处理所有有效数字以生成字符串。 - 默认值:true
- 引入于:v2.5.14
cbo_enable_low_cardinality_optimize
- 描述:是否启用低基数优化。启用此功能后,查询 STRING 列的性能将提高约三倍。
- 默认值:true
cbo_eq_base_type
- 描述:指定用于 DECIMAL 数据和 STRING 数据之间数据比较的数据类型。默认值为
VARCHAR
,DECIMAL 也是一个有效值。 此变量仅对=
和!=
比较有效。 - 数据类型:字符串
- 引入于:v2.5.14
cbo_materialized_view_rewrite_related_mvs_limit
- 描述:指定查询规划期间允许的候选物化视图的最大数量。
- 默认: 64
- 引入于:v3.1.9, v3.2.5
cbo_prune_subfield
- 描述:是否启用 JSON 子字段剪枝。此变量必须与 BE 动态参数
enable_json_flat
一起使用。否则,可能会降低 JSON 数据查询性能。 - 默认值:false
- 数据类型:Int
- 引入于:v3.3.0
enable_sync_materialized_view_rewrite
- 描述:是否启用基于同步物化视图的查询重写。
- 默认值:true
- 引入于:v3.1.11, v3.2.5
query_including_mv_names
- 描述:指定要在查询执行中包含的异步物化视图的名称。您可以使用此变量来限制候选物化视图的数量,并提高优化器中的查询重写性能。此项的优先级高于
query_excluding_mv_names
。 - 默认值:empty
- 数据类型:字符串
- 引入于:v3.1.11, v3.2.5
query_excluding_mv_names
- 描述:指定要从查询执行中排除的异步物化视图的名称。您可以使用此变量来限制候选物化视图的数量,并减少优化器中查询重写的时间。
query_including_mv_names
的优先级高于此项。 - 默认值:empty
- 数据类型:字符串
- 引入于:v3.1.11, v3.2.5
optimizer_materialized_view_timelimit
- 描述:指定一个物化视图重写规则可以消耗的最大时间。达到阈值后,此规则将不用于查询重写。
- 默认: 1000
- 单位:ms
- 引入于:v3.1.9, v3.2.5
enable_materialized_view_agg_pushdown_rewrite
- 描述:是否启用物化视图查询重写的聚合下推。如果设置为
true
,则聚合函数将在查询执行期间下推到 Scan Operator,并在执行 Join Operator 之前由物化视图重写。这将缓解由 Join 引起的数据膨胀,从而提高查询性能。有关此功能的场景和限制的详细信息,请参阅 聚合下推。 - 默认值:false
- 引入于:v3.3.0
enable_materialized_view_text_match_rewrite
- 描述:是否启用基于文本的物化视图重写。当此项设置为 true 时,优化器将查询与现有的物化视图进行比较。如果物化视图定义的抽象语法树与查询或其子查询的抽象语法树匹配,则将重写查询。
- 默认值:true
- 引入于:v3.2.5, v3.3.0
materialized_view_subuqery_text_match_max_count
- 描述:指定系统检查查询的子查询是否与物化视图的定义匹配的最大次数。
- 默认: 4
- 引入于:v3.2.5, v3.3.0
enable_force_rule_based_mv_rewrite
- 描述:是否为优化器基于规则的优化阶段中针对多个表的查询启用查询重写。启用此功能将提高查询重写的鲁棒性。但是,如果查询错过了物化视图,也会增加时间消耗。
- 默认值:true
- 引入于:v3.3.0
enable_view_based_mv_rewrite
- 描述:是否为基于逻辑视图的物化视图启用查询重写。如果此项设置为
true
,则逻辑视图用作统一节点以重写针对自身的查询,以获得更好的性能。如果此项设置为false
,则系统将针对逻辑视图的查询转录为针对物理表或物化视图的查询,然后重写它们。 - 默认值:false
- 引入于:v3.1.9, v3.2.5, v3.3.0
enable_materialized_view_union_rewrite
- 描述:是否启用物化视图 union 重写。如果此项设置为
true
,则当物化视图中的谓词不能满足查询的谓词时,系统会尝试使用 UNION ALL 来补偿谓词。 - 默认值:true
- 引入于:v2.5.20, v3.1.9, v3.2.7, v3.3.0
enable_materialized_view_plan_cache
- 描述:是否启用物化视图计划缓存,它可以优化物化视图的自动重写性能。将其设置为
true
表示启用它。 - 默认值:true
- 引入于:v2.5.13, v3.0.7, v3.1.4, v3.2.0, v3.3.0
enable_parquet_reader_bloom_filter
- 描述:是否启用 Parquet 文件的 Bloom Filter 以提高性能。
true
表示启用 Bloom Filter,false
表示禁用它。您还可以使用 BE 配置parquet_reader_bloom_filter_enable
在系统级别控制此行为。 Parquet 中的 Bloom Filter 在每个行组内按列级别 维护。如果 Parquet 文件包含某些列的 Bloom Filter,则查询可以使用这些列上的谓词来有效地跳过行组。 - 默认值:true
- 引入于:v3.5
enable_plan_advisor
- 描述:是否为慢查询和手动标记的查询启用查询反馈功能。
- 默认值:true
- 引入于:v3.4.0
enable_plan_analyzer
- 描述:是否为所有查询启用查询反馈功能。仅当
enable_plan_advisor
设置为true
时,此变量才生效。 - 默认值:false
- 引入于:v3.4.0
enable_parquet_reader_bloom_filter
- 默认值:true
- 类型:Boolean
- 单位: -
- 描述:是否在读取 Parquet 文件时启用 Bloom Filter 优化。
true
(默认): 在读取 Parquet 文件时启用 Bloom Filter 优化。false
: 在读取 Parquet 文件时禁用 Bloom Filter 优化。
- 引入于:v3.5.0
enable_parquet_reader_page_index
- 默认值:true
- 类型:Boolean
- 单位: -
- 描述:是否在读取 Parquet 文件时启用 Page Index 优化。
true
(默认): 在读取 Parquet 文件时启用 Page Index 优化。false
: 在读取 Parquet 文件时禁用 Page Index 优化。
- 引入于:v3.5.0
follower_query_forward_mode
-
描述:指定查询语句路由到哪个 FE 节点。
-
有效值
default
:根据 Follower 的重放进度将查询语句路由到 Leader FE 或 Follower FE。如果 Follower FE 节点尚未完成重放进度,则查询将路由到 Leader FE 节点。如果重放进度完成,则查询将优先路由到 Follower FE 节点。leader
:将查询语句路由到 Leader FE。follower
:将查询语句路由到 Follower FE。
-
-
默认值:default
-
数据类型:字符串
-
引入于:v2.5.20, v3.1.9, v3.2.7, v3.3.0
character_set_database (global)
- 数据类型:字符串StarRocks 支持的字符集。仅支持 UTF8 (
utf8
)。 - 默认值:utf8
- 数据类型:字符串
connector_io_tasks_per_scan_operator
- 描述:外部表查询期间扫描算子可以发出的最大并发 I/O 任务数。该值为整数。目前,StarRocks 可以在查询外部表时自适应地调整并发 I/O 任务的数量。此功能由变量
enable_connector_adaptive_io_tasks
控制,默认情况下启用。 - 默认: 16
- 数据类型:Int
- 引入于:v2.5
connector_sink_compression_codec
- 描述:指定用于将数据写入 Hive 表或 Iceberg 表,或者使用 Files() 导出数据的压缩算法。
- 有效值:
uncompressed
、snappy
、lz4
、zstd
和gzip
。 - 默认值:uncompressed
- 数据类型:字符串
- 引入于:v3.2.3
connector_sink_target_max_file_size
- 描述:指定将数据写入 Hive 表或 Iceberg 表,或者使用 Files() 导出数据的目标文件的最大大小。该限制不是精确的,并且是尽力而为的应用。
- 单位:Bytes
- 默认: 1073741824
- 数据类型:Long
- 引入于:v3.3.0
count_distinct_column_buckets
- 描述:group-by-count-distinct 查询中 COUNT DISTINCT 列的 bucket 数量。仅当
enable_distinct_column_bucketization
设置为true
时,此变量才生效。 - 默认: 1024
- 引入于:v2.5
default_rowset_type (global)
用于设置计算节点的存储引擎使用的默认存储格式。当前支持的存储格式为 alpha
和 beta
。
default_table_compression
-
描述:表存储的默认压缩算法。支持的压缩算法为
snappy, lz4, zlib, zstd
。请注意,如果在 CREATE TABLE 语句中指定了
compression
属性,则compression
指定的压缩算法生效。 -
默认值:lz4_frame
-
引入于:v3.0
disable_colocate_join
- 描述:用于控制是否启用 Colocation Join。默认值为
false
,表示启用该功能。禁用此功能后,查询规划将不会尝试执行 Colocation Join。 - 默认值:false
disable_streaming_preaggregations
用于启用流式预聚合。默认值为 false
,表示已启用。
div_precision_increment
用于 MySQL 客户端兼容性。没有实际用途。
dynamic_overwrite
- 描述:是否为带有分区表的 INSERT OVERWRITE 启用 动态覆盖 语义。有效值
true
:启用动态覆盖。false
:禁用动态覆盖,并使用默认语义。
- 默认值:false
- 引入于:v3.4.0
enable_datacache_async_populate_mode
- 描述:是否在异步模式下填充数据缓存。默认情况下,系统使用同步模式填充数据缓存,即在查询数据时填充缓存。
- 默认值:false
- 引入于:v3.2.7
enable_connector_adaptive_io_tasks
- 描述:是否在查询外部表时自适应地调整并发 I/O 任务的数量。默认值为
true
。如果未启用此功能,则可以使用变量connector_io_tasks_per_scan_operator
手动设置并发 I/O 任务的数量。 - 默认值:true
- 引入于:v2.5
enable_distinct_column_bucketization
-
描述:是否为 group-by-count-distinct 查询中的 COUNT DISTINCT 列启用 bucket 化。以
select a, count(distinct b) from t group by a;
查询为例。如果 GROUP BY 列a
是一个低基数列,并且 COUNT DISTINCT 列b
是一个高基数列,其中存在严重的数据倾斜,则会发生性能瓶颈。在这种情况下,您可以将 COUNT DISTINCT 列中的数据拆分为多个 bucket 以平衡数据并防止数据倾斜。您必须将此变量与变量count_distinct_column_buckets
一起使用。您还可以通过向查询添加
skew
提示来为 COUNT DISTINCT 列启用 bucket 化,例如,select a,count(distinct [skew] b) from t group by a;
。 -
默认值:false,表示禁用此功能。
-
引入于:v2.5
enable_gin_filter
- 描述:是否在查询期间利用 全文倒排索引。
- 默认值:true
- 引入于:v3.3.0
enable_group_level_query_queue (global)
- 描述:是否启用资源组级别的 查询队列。
- 默认值:false,表示禁用此功能。
- 引入于:v3.1.4
enable_iceberg_metadata_cache
- 描述:是否缓存 Iceberg 表的指针和分区名称。从 v3.2.1 到 v3.2.3,无论使用哪种 metastore 服务,此参数默认设置为
true
。在 v3.2.4 及更高版本中,如果 Iceberg 集群使用 AWS Glue 作为 metastore,则此参数仍默认为true
。但是,如果 Iceberg 集群使用其他 metastore 服务(例如 Hive metastore),则此参数默认为false
。 - 引入于:v3.2.1
enable_metadata_profile
- 描述: 是否为 Iceberg Catalog 的元数据收集查询开启 Profile。
- 默认值:true
- 引入于:v3.3.3
plan_mode
- 描述:Iceberg Catalog 的元数据检索策略。有关更多信息,请参见 Iceberg Catalog 元数据检索策略。有效值
auto
:系统将自动选择检索计划。local
:使用本地缓存计划。distributed
:使用分布式计划。
- 默认值:auto
- 引入于:v3.3.3
metadata_collect_query_timeout
- 描述:Iceberg Catalog 元数据收集查询的超时持续时间。
- 单位:秒
- 默认: 60
- 引入于:v3.3.3
enable_insert_strict
- 描述:是否在使用 INSERT 从 files() 加载数据时启用严格模式。有效值:
true
和false
(默认)。启用严格模式后,系统仅加载合格的行。它会过滤掉不合格的行,并返回有关不合格行的详细信息。有关更多信息,请参见 严格模式。在早于 v3.4.0 的版本中,当enable_insert_strict
设置为true
时,如果存在不合格的行,则 INSERT 作业将失败。 - 默认值:true
insert_max_filter_ratio
- 描述:INSERT 从 files() 的最大错误容忍度。它是由于数据质量不足而被过滤掉的数据记录的最大比率。当不合格数据记录的比率达到此阈值时,作业将失败。范围:[0, 1]。
- 默认: 0
- 引入于:v3.4.0
insert_timeout
- 描述:INSERT 作业的超时持续时间。单位:秒。从 v3.4.0 开始,
insert_timeout
适用于 INSERT 中涉及的操作(例如,UPDATE、DELETE、CTAS、物化视图刷新、统计信息收集和 PIPE),取代了query_timeout
。 - 默认: 14400
- 引入于:v3.4.0
enable_materialized_view_for_insert
- 描述:是否允许 StarRocks 重写 INSERT INTO SELECT 语句中的查询。
- 默认值:false,表示默认情况下禁用此类场景中的查询重写。
- 引入于:v2.5.18, v3.0.9, v3.1.7, v3.2.2
enable_rule_based_materialized_view_rewrite
- 描述:控制是否启用基于规则的物化视图查询重写。此变量主要用于单表查询重写。* 默认值:true
- 数据类型:Boolean
- 引入于:v2.5
enable_short_circuit
- 描述:是否启用查询的短路。默认值:
false
。如果设置为true
,当查询满足以下条件(评估查询是否为点查询):WHERE 子句中的条件列包含所有主键列,并且 WHERE 子句中的运算符为=
或IN
,则查询采用短路。 - 默认值:false
- 引入于:v3.2.3
enable_spill
- 描述:是否启用中间结果溢写。默认值:
false
。如果设置为true
,StarRocks 会将中间结果溢写到磁盘,以减少查询中聚合、排序或 Join 算子的内存使用量。 - 默认值:false
- 引入于:v3.0
enable_spill_to_remote_storage
- 描述:是否启用将中间结果溢写到对象存储。如果设置为
true
,则在本地磁盘容量达到上限后,StarRocks 会将中间结果溢写到spill_storage_volume
中指定的存储卷。有关更多信息,请参见溢写到对象存储。 - 默认值:false
- 引入于:v3.3.0
enable_strict_order_by
- 描述:用于检查 ORDER BY 中引用的列名是否含糊不清。当此变量设置为默认值
TRUE
时,对于以下查询模式会报告错误:查询的不同表达式中使用了重复的别名,并且此别名也是 ORDER BY 中的排序字段,例如select distinct t1.* from tbl1 t1 order by t1.k1;
。该逻辑与 v2.3 及更早版本中的逻辑相同。当此变量设置为FALSE
时,将使用宽松的去重机制,并将此类查询视为有效的 SQL 查询。 - 默认值:true
- 引入版本:v2.5.18 和 v3.1.7
enable_profile
-
描述:指定是否发送查询的 Profile 以进行分析。默认值为
false
,表示不需要 Profile。默认情况下,仅当 BE 中发生查询错误时,才会将 Profile 发送到 FE。发送 Profile 会导致网络开销,因此会影响高并发。
如果需要分析查询的 Profile,可以将此变量设置为
true
。查询完成后,可以在当前连接的 FE 的网页上查看 Profile(地址:fe_host:fe_http_port/query
)。此页面显示最近 100 个启用了enable_profile
的查询的 Profile。 -
默认值:false
enable_query_queue_load(全局)
- 描述:用于为加载任务启用查询队列的布尔值。
- 默认值:false
enable_query_queue_select(全局)
- 描述:是否为 SELECT 查询启用查询队列。
- 默认值:false
enable_query_queue_statistic(全局)
- 描述:是否为统计查询启用查询队列。
- 默认值:false
enable_query_tablet_affinity
-
描述:用于控制是否将针对同一 Tablet 的多个查询定向到固定副本的布尔值。
在要查询的表具有大量 Tablet 的情况下,此功能可以显著提高查询性能,因为 Tablet 的元信息和数据可以更快地缓存在内存中。
但是,如果存在一些热点 Tablet,此功能可能会降低查询性能,因为它会将查询定向到同一 BE,从而使其无法在高并发场景中充分利用多个 BE 的资源。
-
默认值:false,表示系统为每个查询选择一个副本。
-
引入版本:v2.5.6、v3.0.8、v3.1.4 和 v3.2.0。
enable_lake_tablet_internal_parallel
- 描述:是否为共享数据集群中的云原生表启用并行扫描。
- 默认值:false
- 数据类型:Boolean
- 引入于:v3.3.0
tablet_internal_parallel_mode
- 描述:Tablet 的内部并行扫描策略。有效值
auto
:当 BE 或 CN 节点上要扫描的 Tablet 数量小于并行度 (DOP) 时,系统会自动根据 Tablet 的估计大小确定是否需要并行扫描。force_split
:强制拆分 Tablet 并执行并行扫描。
- 默认值:auto
- 数据类型:字符串
- 引入版本:v2.5.0
enable_scan_datacache
- 描述:指定是否启用数据缓存功能。启用此功能后,StarRocks 会将从外部存储系统读取的热数据缓存到块中,从而加速查询和分析。有关更多信息,请参见数据缓存。在 3.2 之前的版本中,此变量名为
enable_scan_block_cache
。 - 默认值:true
- 引入于:v2.5
populate_datacache_mode
- 描述:指定从外部存储系统读取数据块时,数据缓存的填充行为。有效值
auto
(默认):系统根据填充规则自动选择性地缓存数据。always
:始终缓存数据。never
:从不缓存数据。
- 默认值:auto
- 引入版本:v3.3.2
enable_datacache_io_adaptor
- 描述:是否启用数据缓存 I/O 适配器。将其设置为
true
启用该功能。启用此功能后,当磁盘 I/O 负载较高时,系统会自动将一些缓存请求路由到远程存储,从而降低磁盘压力。 - 默认值:true
- 引入于:v3.3.0
enable_file_metacache
- 描述:是否为远程存储中的文件启用元数据缓存(Footer Cache)。将其设置为
true
启用该功能。Footer Cache 直接将解析后的 Footer 对象缓存在内存中。当后续查询访问同一文件的 Footer 时,可以直接从缓存中获取对象描述符,从而避免重复解析。此功能使用数据缓存的内存模块进行数据缓存。因此,您必须确保 BE 参数datacache_enable
设置为true
,并为datacache_mem_size
配置合理的值。 - 默认值:true
- 引入于:v3.3.0
enable_datacache_sharing
- 描述:是否启用缓存共享。将其设置为
true
启用该功能。缓存共享用于支持通过网络从其他节点访问缓存数据,这有助于减少集群伸缩期间由缓存失效引起的性能抖动。仅当 FE 参数enable_trace_historical_node
设置为true
时,此变量才生效。 - 默认值:true
- 引入版本:v3.5.1
datacache_sharing_work_period
- 描述:缓存共享生效的时间段。在每次集群伸缩操作之后,只有在此时间段内的请求才会尝试从其他节点访问缓存数据(如果启用了缓存共享功能)。
- 默认: 600
- 单位:秒
- 引入版本:v3.5.1
historical_nodes_min_update_interval
- 描述:两次更新历史节点记录之间的最小间隔。如果一个集群的节点在短时间内频繁更改(即,小于此变量中设置的值),则一些中间状态将不会被记录为有效的历史节点快照。历史节点是缓存共享功能在集群伸缩期间选择正确缓存节点的主要依据。
- 默认: 600
- 单位:秒
- 引入版本:v3.5.1
enable_tablet_internal_parallel
- 描述:是否启用 Tablet 的自适应并行扫描。启用此功能后,可以使用多个线程按 Segment 扫描一个 Tablet,从而提高扫描并发性。
- 默认值:true
- 引入版本:v2.3
enable_query_cache
- 描述:指定是否启用查询缓存功能。有效值:true 和 false。
true
指定启用此功能,false
指定禁用此功能。启用此功能后,它仅适用于满足查询缓存的应用场景中指定的条件的查询。 - 默认值:false
- 引入于:v2.5
enable_adaptive_sink_dop
- 描述:指定是否为数据加载启用自适应并行性。启用此功能后,系统会自动为 INSERT INTO 和 Broker Load 作业设置加载并行性,这相当于
pipeline_dop
的机制。对于新部署的 v2.5 StarRocks 集群,默认值为true
。对于从 v2.4 升级的 v2.5 集群,默认值为false
。 - 默认值:false
- 引入于:v2.5
enable_pipeline_engine
- 描述:指定是否启用 Pipeline 执行引擎。
true
表示启用,false
表示禁用。默认值:true
。 - 默认值:true
enable_sort_aggregate
- 描述:指定是否启用排序流。
true
表示启用排序流以对数据流中的数据进行排序。 - 默认值:false
- 引入于:v2.5
enable_global_runtime_filter
是否启用全局运行时过滤器(简称 RF)。RF 在运行时过滤数据。数据过滤通常发生在 Join 阶段。在多表 Join 期间,使用谓词下推等优化来过滤数据,以减少 Join 的扫描行数和 Shuffle 阶段的 I/O,从而加速查询。
StarRocks 提供两种类型的 RF:本地 RF 和全局 RF。本地 RF 适用于广播哈希 Join,全局 RF 适用于 Shuffle Join。
默认值:true
,表示启用全局 RF。如果禁用此功能,全局 RF 将不会生效。本地 RF 仍然可以工作。
enable_multicolumn_global_runtime_filter
是否启用多列全局运行时过滤器。默认值:false
,表示禁用多列全局 RF。
如果 Join(广播 Join 和复制 Join 除外)具有多个等值 Join 条件
- 如果禁用此功能,则只有本地 RF 才能工作。
- 如果启用此功能,则多列全局 RF 生效,并在 partition by 子句中携带
multi-column
。
enable_write_hive_external_table
- 描述:是否允许将数据 Sinking 到 Hive 的外部表。
- 默认值:false
- 引入版本:v3.2
enable_query_trigger_analyze
- 默认值:true
- 类型:Boolean
- 描述:是否启用查询触发 ANALYZE 任务。
- 引入于:v3.4.0
event_scheduler
用于 MySQL 客户端兼容性。没有实际用途。
enable_strict_type
- 描述:是否允许对所有复合谓词和 WHERE 子句中的所有表达式进行隐式转换。
- 默认值:false
- 引入于:v3.1
force_streaming_aggregate
用于控制聚合节点是否启用流式聚合进行计算。默认值为 false,表示未启用该功能。
forward_to_leader
用于指定某些命令是否将转发到 leader FE 进行执行。别名:forward_to_master
。默认值为 false
,表示不转发到 leader FE。StarRocks 集群中有多个 FE,其中一个是 leader FE。通常,用户可以连接到任何 FE 进行全功能操作。但是,某些信息仅在 leader FE 上可用。
例如,如果 SHOW BACKENDS 命令未转发到 leader FE,则只能查看基本信息(例如,节点是否处于活动状态)。转发到 leader FE 可以获得更详细的信息,包括节点启动时间和上次心跳时间。
受此变量影响的命令如下
-
SHOW FRONTENDS:转发到 leader FE 允许用户查看上次心跳消息。
-
SHOW BACKENDS:转发到 leader FE 允许用户查看启动时间、上次心跳信息和磁盘容量信息。
-
SHOW BROKER:转发到 leader FE 允许用户查看启动时间和上次心跳信息。
-
SHOW TABLET
-
ADMIN SHOW REPLICA DISTRIBUTION
-
ADMIN SHOW REPLICA STATUS:转发到 leader FE 允许用户查看存储在 leader FE 元数据中的 Tablet 信息。通常,Tablet 信息在不同 FE 的元数据中应该是相同的。如果发生错误,可以使用此方法比较当前 FE 和 leader FE 的元数据。
-
Show PROC:转发到 leader FE 允许用户查看存储在元数据中的 PROC 信息。这主要用于元数据比较。
group_concat_max_len
- 描述:group_concat 函数返回的字符串的最大长度。
- 默认: 1024
- 最小值: 4
- 单位:字符
- 数据类型:Long
hash_join_push_down_right_table
- 描述:用于控制是否可以使用 Join 查询中针对右表的过滤条件来过滤左表的数据。如果是,则可以减少查询期间需要处理的数据量。默认值:
true
表示允许该操作,并且系统决定是否可以过滤左表。false
表示禁用该操作。默认值为true
。
init_connect(全局)
用于 MySQL 客户端兼容性。没有实际用途。
interactive_timeout
用于 MySQL 客户端兼容性。没有实际用途。
io_tasks_per_scan_operator
- 描述:一个 Scan 算子可以发出的并发 I/O 任务的数量。如果要访问 HDFS 或 S3 等远程存储系统,但延迟很高,请增加此值。但是,较大的值会导致更多的内存消耗。
- 默认: 4
- 数据类型:Int
- 引入于:v2.5
jit_level
- 描述:启用表达式 JIT 编译的级别。有效值
1
:系统自适应地为可编译表达式启用 JIT 编译。-1
:为所有可编译的非常量表达式启用 JIT 编译。0
:禁用 JIT 编译。如果此功能返回任何错误,您可以手动禁用它。
- 默认: 1
- 数据类型:Int
- 引入版本: -
language(全局)
用于 MySQL 客户端兼容性。没有实际用途。
license(全局)
- 描述:显示 StarRocks 的许可证。
- 默认值:Apache License 2.0
load_mem_limit
指定导入操作的内存限制。默认值为 0,表示不使用此变量,而是使用 query_mem_limit
。
此变量仅用于涉及查询和导入的 INSERT
操作。如果用户未设置此变量,则查询和导入的内存限制都将设置为 exec_mem_limit
。否则,查询的内存限制将设置为 exec_mem_limit
,导入的内存限制将设置为 load_mem_limit
。
其他导入方法(如 BROKER LOAD
、STREAM LOAD
)仍使用 exec_mem_limit
作为内存限制。
log_rejected_record_num(v3.1 及更高版本)
指定可以记录的不合格数据行的最大数量。有效值:0
、-1
和任何非零正整数。默认值:0
。
- 值
0
指定将不记录被过滤掉的数据行。 - 值
-1
指定将记录所有被过滤掉的数据行。 - 一个非零正整数(例如
n
)指定每个 BE 上最多可以记录n
个被过滤掉的数据行。
lower_case_table_names(全局)
用于 MySQL 客户端兼容性。没有实际用途。StarRocks 中的表名区分大小写。
lower_upper_support_utf8
- 默认值:false
- 类型:Boolean
- 单位: -
- 描述:是否支持
lower
和upper
函数中 UTF-8 字符的大小写转换。有效值true
:支持 UTF-8 字符的大小写转换。false
(默认):不支持 UTF-8 字符的大小写转换。
- 引入于:v3.5.0
low_cardinality_optimize_on_lake
- 默认值:true
- 类型:Boolean
- 单位: -
- 描述:是否在数据湖查询上启用低基数优化。有效值
true
(默认):在数据湖查询上启用低基数优化。false
:禁用数据湖查询上的低基数优化。
- 引入于:v3.5.0
materialized_view_rewrite_mode(v3.2 及更高版本)
指定异步物化视图的查询重写模式。有效值
disable
:禁用异步物化视图的自动查询重写。default
(默认值):启用异步物化视图的自动查询重写,并允许优化器根据成本决定是否可以使用物化视图重写查询。如果查询无法重写,则直接扫描基表中的数据。default_or_error
:启用异步物化视图的自动查询重写,并允许优化器根据成本决定是否可以使用物化视图重写查询。如果查询无法重写,则返回错误。force
:启用异步物化视图的自动查询重写,优化器优先使用物化视图进行查询重写。如果查询无法重写,则直接扫描基表中的数据。force_or_error
:启用异步物化视图的自动查询重写,优化器优先使用物化视图进行查询重写。如果查询无法重写,则返回错误。
max_allowed_packet
- 描述:用于与 JDBC 连接池 C3P0 兼容。此变量指定客户端和服务器之间可以传输的数据包的最大大小。
- 默认值:33554432 (32 MB)。如果客户端报告“PacketTooBigException”,则可以提高此值。
- 单位:字节
- 数据类型:Int
max_pushdown_conditions_per_column
- 描述:可以为一列下推的谓词的最大数量。
- 默认值:-1,表示使用
be.conf
文件中的值。如果此变量设置为大于 0 的值,则忽略be.conf
中的值。 - 数据类型:Int
max_scan_key_num
- 描述:每个查询分割的最大扫描键数。
- 默认值:-1,表示使用
be.conf
文件中的值。如果此变量设置为大于 0 的值,则忽略be.conf
中的值。
nested_mv_rewrite_max_level
- 描述:可用于查询重写的嵌套物化视图的最大级别。
- 取值范围:[1, +∞)。值
1
表示只能使用在基表上创建的物化视图进行查询重写。 - 默认: 3
- 数据类型:Int
net_buffer_length
用于 MySQL 客户端兼容性。没有实际用途。
net_read_timeout
用于 MySQL 客户端兼容性。没有实际用途。
net_write_timeout
用于 MySQL 客户端兼容性。没有实际用途。
new_planner_optimize_timeout
- 描述:查询优化器的超时持续时间。当优化器超时时,将返回错误并停止查询,这会影响查询性能。您可以根据查询将此变量设置为更大的值,或联系 StarRocks 技术支持进行故障排除。当查询具有太多 Join 时,通常会发生超时。
- 默认: 3000
- 单位:ms
parallel_exchange_instance_num
用于设置上层节点用于接收来自执行计划中下层节点的数据的交换节点数。默认值为 -1,表示交换节点的数量等于下层节点的执行实例的数量。当此变量设置为大于 0 但小于下层节点的执行实例的数量时,交换节点的数量等于设置的值。
在分布式查询执行计划中,上层节点通常具有一个或多个交换节点,以接收来自不同 BE 上下层节点的执行实例的数据。通常,交换节点的数量等于下层节点的执行实例的数量。
在某些聚合查询场景中,聚合后数据量急剧减少,您可以尝试将此变量修改为较小的值,以减少资源开销。一个例子是使用 Duplicate Key 表运行聚合查询。
parallel_fragment_exec_instance_num
用于设置每个 BE 上用于扫描节点的实例数。默认值为 1。
查询计划通常会生成一组扫描范围。此数据分布在多个 BE 节点上。一个 BE 节点将具有一个或多个扫描范围,并且默认情况下,每个 BE 节点的扫描范围集仅由一个执行实例处理。当机器资源充足时,您可以增加此变量,以允许更多的执行实例同时处理扫描范围,以提高效率。
扫描实例的数量决定了上层中的其他执行节点的数量,例如聚合节点和 Join 节点。因此,它增加了整个查询计划执行的并发性。修改此变量将有助于提高效率,但较大的值将消耗更多的机器资源,例如 CPU、内存和磁盘 IO。
partial_update_mode
-
描述:用于控制部分更新的模式。有效值
auto
(默认):系统通过分析 UPDATE 语句和涉及的列来自动确定部分更新的模式。column
:列模式用于部分更新,特别适用于涉及少量列和大量行的部分更新。
有关更多信息,请参见UPDATE。
-
默认值:auto
-
引入于:v3.1
performance_schema(全局)
用于与 MySQL JDBC 8.0.16 及更高版本兼容。没有实际用途。
prefer_compute_node
- 描述:指定 FE 是否将查询执行计划分发到 CN 节点。有效值
true
:表示 FE 将查询执行计划分发到 CN 节点。false
:表示 FE 不将查询执行计划分发到 CN 节点。
- 默认值:false
- 引入版本:v2.4
pipeline_dop
-
描述:Pipeline 实例的并行度,用于调整查询并发性。默认值:0,表示系统自动调整每个 Pipeline 实例的并行度。您也可以将此变量设置为大于 0 的值。通常,将该值设置为物理 CPU 核心数的一半。
从 v3.0 开始,StarRocks 会根据查询并行性自适应地调整此变量。
-
默认: 0
-
数据类型:Int
pipeline_profile_level
-
描述:控制查询 Profile 的级别。查询 Profile 通常有五个层:Fragment、FragmentInstance、Pipeline、PipelineDriver 和 Operator。不同的级别提供不同的 Profile 详细信息
- 0:StarRocks 合并 Profile 的指标,仅显示几个核心指标。
- 1:默认值。StarRocks 简化 Profile 并合并 Profile 的指标,以减少 Profile 层。
- 2:StarRocks 保留 Profile 的所有层。在此场景中,Profile 大小较大,尤其是在 SQL 查询复杂时。不建议使用此值。
-
默认: 1
-
数据类型:Int
query_cache_entry_max_bytes
- 描述:触发 Passthrough 模式的阈值。当查询访问的特定 Tablet 的计算结果的字节数或行数超过
query_cache_entry_max_bytes
或query_cache_entry_max_rows
指定的阈值时,查询将切换到 Passthrough 模式。 - 有效值:0 到 9223372036854775807
- 默认: 4194304
- 单位:字节
- 引入于:v2.5
query_cache_entry_max_rows
- 描述:可以缓存的行数的上限。请参见
query_cache_entry_max_bytes
中的描述。默认值:。 - 默认: 409600
- 引入于:v2.5
query_cache_agg_cardinality_limit
- 描述:查询缓存中 GROUP BY 的基数上限。如果 GROUP BY 生成的行数超过此值,则不启用查询缓存。默认值:5000000。如果
query_cache_entry_max_bytes
或query_cache_entry_max_rows
设置为 0,即使从涉及的 Tablet 中没有生成任何计算结果,也使用 Passthrough 模式。 - 默认: 5000000
- 数据类型:Long
- 引入于:v2.5
query_cache_size(全局)
用于 MySQL 客户端兼容性。没有实际用途。
query_cache_type
用于与 JDBC 连接池 C3P0 兼容。没有实际用途。
query_mem_limit
- 描述:用于设置每个 BE 节点上查询的内存限制。默认值为 0,表示没有限制。此项仅在启用 Pipeline Engine 后生效。发生
Memory Exceed Limit
错误时,您可以尝试增加此变量。将其设置为0
表示不施加任何限制。 - 默认: 0
- 单位:字节
query_queue_concurrency_limit(全局)
- 描述:BE 上并发查询的上限。仅在设置为大于
0
后生效。将其设置为0
表示不施加任何限制。 - 默认: 0
- 数据类型:Int
query_queue_cpu_used_permille_limit(全局)
- 描述:BE 上 CPU 使用率千分比(CPU 使用率 * 1000)的上限。仅在设置为大于
0
后生效。将其设置为0
表示不施加任何限制。 - 取值范围: [0, 1000]
- 默认值:
0
query_queue_max_queued_queries(全局)
- 描述:队列中查询的上限。达到此阈值时,将拒绝传入的查询。仅在设置为大于
0
后生效。将其设置为0
表示不施加任何限制。 - 默认值:
1024
。
query_queue_mem_used_pct_limit(全局)
- 描述:BE 上内存使用率百分比的上限。仅在设置为大于
0
后生效。将其设置为0
表示不施加任何限制。 - 取值范围: [0, 1]
- 默认: 0
query_queue_pending_timeout_second(全局)
- 描述:队列中挂起查询的最大超时时间。达到此阈值时,将拒绝相应的查询。
- 默认: 300
- 单位:秒
query_timeout
- 描述:用于设置查询超时时间,单位为“秒”。此变量将作用于当前连接中的所有查询语句。默认值为 300 秒。从 v3.4.0 版本开始,
query_timeout
不适用于涉及 INSERT 的操作(例如 UPDATE、DELETE、CTAS、物化视图刷新、统计信息收集和 PIPE)。 - 取值范围: [1, 259200]
- 默认: 300
- 数据类型:Int
- 单位:秒
range_pruner_max_predicate
- 描述:用于 Range 分区剪裁的 IN 谓词的最大数量。默认值:100。大于 100 的值可能导致系统扫描所有 Tablet,从而影响查询性能。
- 默认: 100
- 引入于:v3.0
rewrite_count_distinct_to_bitmap_hll
用于决定是否将 count distinct 查询重写为 bitmap_union_count 和 hll_union_agg。
runtime_filter_on_exchange_node
-
描述:是否在 GRF 被跨 Exchange 算子下推到较低层级的算子后,将 GRF 放置在 Exchange 节点上。默认值为
false
,这意味着 GRF 被跨 Exchange 算子下推到较低层级的算子后,将不会被放置在 Exchange 节点上。这可以防止重复使用 GRF 并减少计算时间。但是,GRF 的传递是一个“尽力而为”的过程。如果较低层级的算子未能收到 GRF,但 GRF 未被放置在 Exchange 节点上,则数据将无法被过滤,从而影响过滤性能。
true
表示即使 GRF 被跨 Exchange 算子下推到较低层级的算子后,仍会被放置在 Exchange 节点上。 -
默认值:false
runtime_join_filter_push_down_limit
- 描述:基于 Bloom filter Local RF 生成的 Hash 表允许的最大行数。如果超过此值,则不会生成 Local RF。此变量可以防止生成过长的 Local RF。
- 默认: 1024000
- 数据类型:Int
runtime_profile_report_interval
- 描述:运行时 Profile 的报告时间间隔。
- 默认: 10
- 单位:秒
- 数据类型:Int
- 引入版本:v3.1.0
scan_olap_partition_num_limit
- 描述:执行计划中允许扫描的单个表的分区数。
- 默认值:0(无限制)
- 引入版本:v3.3.9
spill_mode (3.0 及更高版本)
中间结果溢写的执行模式。有效值
auto
:当内存使用量达到阈值时,自动触发溢写。force
:StarRocks 强制对所有相关算子执行溢写,而不管内存使用情况如何。
此变量仅在变量 enable_spill
设置为 true
时生效。
spill_storage_volume
- 描述:您希望存储触发溢写的查询的中间结果的存储卷。有关更多信息,请参阅 溢写到对象存储。
- 默认值:空字符串
- 引入于:v3.3.0
SQL_AUTO_IS_NULL
用于与 JDBC 连接池 C3P0 兼容。没有实际用途。
sql_dialect
-
描述:使用的 SQL 方言。例如,您可以运行
set sql_dialect = 'trino';
命令将 SQL 方言设置为 Trino,这样您就可以在查询中使用 Trino 特定的 SQL 语法和函数。注意
在您配置 StarRocks 使用 Trino 方言之后,默认情况下查询中的标识符不区分大小写。因此,您必须在数据库和表创建时以小写形式指定数据库和表的名称。如果您以大写形式指定数据库和表名称,则针对这些数据库和表的查询将失败。
-
数据类型:StarRocks
-
引入于:v3.0
sql_mode
用于指定 SQL 模式以适应某些 SQL 方言。有效值包括
PIPES_AS_CONCAT
:管道符号|
用于连接字符串,例如,select 'hello ' || 'world'
。ONLY_FULL_GROUP_BY
(默认):SELECT LIST 只能包含 GROUP BY 列或聚合函数。ALLOW_THROW_EXCEPTION
:当类型转换失败时,返回错误而不是 NULL。FORBID_INVALID_DATE
:禁止无效日期。MODE_DOUBLE_LITERAL
:将浮点类型解释为 DOUBLE 而不是 DECIMAL。SORT_NULLS_LAST
:在排序后将 NULL 值放在末尾。ERROR_IF_OVERFLOW
:在算术溢出的情况下返回错误而不是 NULL。目前,只有 DECIMAL 数据类型支持此选项。GROUP_CONCAT_LEGACY
:使用 v2.5 及更早版本的group_concat
语法。此选项从 v3.0.9 和 v3.1.6 开始支持。
您可以只设置一个 SQL 模式,例如
set sql_mode = 'PIPES_AS_CONCAT';
或者,您可以一次设置多个模式,例如
set sql_mode = 'PIPES_AS_CONCAT,ERROR_IF_OVERFLOW,GROUP_CONCAT_LEGACY';
sql_safe_updates
用于 MySQL 客户端兼容性。没有实际用途。
sql_select_limit
- 描述:用于限制查询返回的最大行数,这可以防止因查询返回过多数据而导致内存不足或网络拥塞等问题。
- 默认值:无限制
- 数据类型:Long
statistic_collect_parallel
- 描述:用于调整可以在 BE 上运行的统计信息收集任务的并行度。默认值:1。您可以增加此值以加快收集任务。
- 默认: 1
- 数据类型:Int
storage_engine
StarRocks 支持的引擎类型
- olap (默认):StarRocks 系统自有的引擎。
- mysql:MySQL 外部表。
- broker:通过 Broker 程序访问外部表。
- elasticsearch 或 es:Elasticsearch 外部表。
- hive:Hive 外部表。
- iceberg:Iceberg 外部表,从 v2.1 开始支持。
- hudi:Hudi 外部表,从 v2.2 开始支持。
- jdbc:用于 JDBC 兼容数据库的外部表,从 v2.3 开始支持。
streaming_preaggregation_mode
用于指定 GROUP BY 第一阶段的预聚合模式。如果第一阶段的预聚合效果不佳,您可以使用流模式,该模式在将数据流式传输到目标之前执行简单的数据序列化。有效值
auto
:系统首先尝试本地预聚合。如果效果不佳,它将切换到流模式。这是默认值。force_preaggregation
:系统直接执行本地预聚合。force_streaming
:系统直接执行流式传输。
system_time_zone
用于显示当前系统的时区。无法更改。
time_zone
用于设置当前会话的时区。时区会影响某些时间函数的结果。
trace_log_mode
-
描述:用于控制查询跟踪 Profile 的日志输出位置。有效值
command
:在执行 TRACE LOGS 后,将查询跟踪 Profile 日志作为 Explain String 返回。file
:在 FE 日志文件 fe.log 中返回查询跟踪 Profile 日志,类名为FileLogTracer
。
-
默认值:
command
-
数据类型:字符串
-
引入版本:v3.2.0
transaction_read_only
- 描述:用于 MySQL 5.8 兼容性。别名为
tx_read_only
。此变量指定事务访问模式。ON
表示只读,OFF
表示可读写。 - 默认值:OFF
- 引入版本:v2.5.18、v3.0.9、v3.1.7
tx_isolation
用于 MySQL 客户端兼容性。没有实际用途。别名为 transaction_isolation
。
use_compute_nodes
-
描述:可以使用的 CN 节点的最大数量。当
prefer_compute_node=true
时,此变量有效。有效值-1
:表示使用所有 CN 节点。0
:表示不使用任何 CN 节点。
-
默认: -1
-
数据类型:Int
-
引入版本:v2.4
use_v2_rollup
用于控制查询以使用 segment v2 存储格式的 Rollup 索引提取数据。此变量用于 segment v2 上线时的验证。不建议用于其他情况。
vectorized_engine_enable (从 v2.4 开始弃用)
用于控制是否使用向量化引擎执行查询。值为 true
表示使用向量化引擎,否则使用非向量化引擎。默认值为 true
。此功能从 v2.4 开始默认启用,因此已被弃用。
version (global)
返回给客户端的 MySQL 服务器版本。该值与 FE 参数 mysql_server_version
相同。
version_comment (global)
StarRocks 版本。无法更改。
wait_timeout
- 描述:服务器在关闭非交互式连接之前等待活动的秒数。如果客户端在此时间内未与 StarRocks 交互,StarRocks 将主动关闭连接。
- 默认值:28800(8 小时)。
- 单位:秒
- 数据类型:Int
orc_use_column_names
- 描述:用于指定当 StarRocks 从 Hive 读取 ORC 文件时如何匹配列。默认值为
false
,这意味着 ORC 文件中的列是根据它们在 Hive 表定义中的序号位置读取的。如果此变量设置为true
,则列是根据它们的名称读取的。 - 默认值:false
- 引入版本:v3.1.10