PolarDB-X是存储计算分离架构,这里主要罗列了常见CN变量(其中部分变量控制台可配置)。
变量名 | 是否重启 | 默认值 | 范围 | 备注 |
PLAN_CACHE | 否 | FALSE | [TRUE|FALSE] | 计划缓存的开关。 |
ENABLE_RECYCLEBIN | 否 | FALSE | [TRUE|FALSE] | 开启回收站的开关。 |
SHOW_TABLES_CACHE | 否 | FALSE | [TRUE|FALSE] | 是否对 |
MERGE_CONCURRENT | 否 | FALSE | [TRUE|FALSE] | 全并行执行开关,主要影响DDL和全下推简单查询的并行执行度。 |
MERGE_UNION | 否 | FALSE | [TRUE|FALSE] | 默认关闭,打开意味着物理SQL不做union优化,且将串行执行下推的物理SQL。 |
MERGE_UNION_SIZE | 否 | -1 | [0-10000] | 通过union合并物理SQL的数量,默认结合连接池可用连接数自适应推导。 |
TABLE_META_CACHE_EXPIRE_TIME | 否 | 300 | [0-180000] | 元数据缓存过期时间。 |
COLUMN_LABEL_INSENSITIVE | 否 | TRUE | [FALSE|TRUE] | 返回列大小写是否敏感。 |
RECORD_SQL | 否 | TRUE | [FALSE|TRUE] | 审计日志开关。 |
SOCKET_TIMEOUT | 否 | 900000 | [0~3600000] | 物理SQL超时时间。 |
TRANSACTION_POLICY | 否 | TSO | [XA|TSO|TSO_READONLY] | 事务策略。 |
SHARE_READ_VIEW | 否 | FALSE | [TRUE|FALSE] | 共享ReadView开关。 |
ENABLE_TRX_SINGLE_SHARD_OPTIMIZATION | 否 | TRUE | [TRUE|FALSE] | 事务单分片优化开关。 |
GET_TSO_TIMEOUT | 否 | 10 | [1-1800] | 获取TSO时间戳超时时间。 |
MAX_TRX_DURATION | 否 | 28800 | [1-180000] | 事务物理超时时间。 |
TRANSACTION_ISOLATION | 否 | REPEATABLE-READ | [READ-UNCOMMITTED|READ-COMMITTED|REPEATABLE-READ|SERIALIZABLE] | 事务隔离级别。 |
GROUP_CONCURRENT_BLOCK | 否 | TRUE | [TRUE|FALSE] | 非MPP模式下分库级别执行策略。 |
SEQUENTIAL_CONCURRENT_POLICY | 否 | FALSE | [TRUE|FALSE] | 非MPP模式下单并发执行策略。 |
DML_SKIP_DUPLICATE_CHECK_FOR_PK | 否 | TRUE | [TRUE|FALSE] | DML过程中是否跳过主键的冲突检查。 |
DML_SKIP_CRUCIAL_ERR_CHECK | 否 | FALSE | [TRUE|FALSE] | DML过程中是否允许有DML报错的事务继续提交。 |
DML_USE_RETURNING | 否 | TRUE | [TRUE|FALSE] | 是否使用returning优化。 |
BROADCAST_DML | 否 | FALSE | [TRUE|FALSE] | 是否允许广播表的写入不走分布式事务。 |
SEQUENCE_STEP | 否 | 10000 | [1-10000000] | SEQUENCE步长,默认为10万。 |
MERGE_DDL_TIMEOUT | 否 | 0 | [1-10000000] | DDL物理连接超时时间,默认是0,不超时。 |
MERGE_DDL_CONCURRENT | 否 | FALSE | [FALSE|TRUE] | DDL是否采用全并行模式, 默认库级并发。 |
SLOW_SQL_TIME | 否 | 1000 | [1-180000] | 慢SQL阈值。 |
LOAD_DATA_BATCH_INSERT_SIZE | 否 | 1024 | [1-180000] | LOAD DATA每次batch insert的记录条数。 |
LOAD_DATA_CACHE_BUFFER_SIZE | 否 | 60 | [1-180000] | LOAD DATA缓存大小,默认60 MB。主要用途为流控。 |
MAX_ALLOWED_PACKET | 否 | 16777216 | [4194304-33554432] | 最大包大小。 |
KILL_CLOSE_STREAM | 否 | FALSE | [FALSE|TRUE] | 是否开启物理连接流式早停功能。 |
ALLOW_SIMPLE_SEQUENCE | 否 | FALSE | [FALSE|TRUE] | 是否允许使用simple sequence。 |
MAX_PARAMETERIZED_SQL_LOG_LENGTH | 否 | 5000 | [1-1000000] | 参与参数化SQL日志打印的最大长度。 |
FORBID_EXECUTE_DML_ALL | 否 | TRUE | [TRUE|FALSE] | 是否禁止全表删除/更新。 |
GROUP_SEQ_CHECK_INTERVAL | 是 | 60 | [1-36000] | 检查插入显式值的周期/间隔,单位秒。 |
JOIN_BLOCK_SIZE | 是 | 300 | [1-100000] | 在非动态裁剪下BKAJOIN执行时的IN Values个数。 |
LOOKUP_JOIN_MAX_BATCH_SIZE | 是 | 6400 | [1-100000] | BKAJOIN执行时的最大IN Values个数。 |
LOOKUP_JOIN_MIN_BATCH_SIZE | 是 | 100 | [1-100000] | BKAJOIN执行时的最小IN Values个数。 |
PURGE_TRANS_INTERVAL | 是 | 300 | [1-180000] | 事务日志清理间隔。 |
PURGE_TRANS_BEFORE | 是 | 1800 | [1-180000] | 清理多久之前的事务日志。 |
ENABLE_BACKGROUND_STATISTIC_COLLECTION | 否 | TRUE | [TRUE|FALSE] | 是否允许统计数据采集。 |
GENERAL_DYNAMIC_SPEED_LIMITATION | 否 | -1 | [-1-10000000] | 数据回填、校验动态的限速,-1为默认限制,表示1w行每秒。 |
PARALLELISM | 否 | -1 | [1-1024] | 单机并行的并行度,默认是由规格推导出来。 |
LOGICAL_DB_TIME_ZONE | 否 | SYSTEM | [SYSTEM|±HH:mm] | 数据库时区。 |
MPP_PARALLELISM | 否 | -1 | [1-1024] | MPP执行模式的并发度,默认是由规格推导出来。 |
DATABASE_PARALLELISM | 否 | 0 | [0-1024] | 单个查询在一个DN上允许同时下发SQL的数量,用户计算Scan的并发度。 |
POLARDBX_PARALLELISM | 否 | 0 | [0-1024] | 单个查询在一个CN允许的最大并发度, 默认是CPU核数。 |
MPP_METRIC_LEVEL | 否 | 3 | [0|1|2|3] | 计算过程中统计信息收集程度,级别越高说明收集粒度越细。 |
ENABLE_COMPLEX_DML_CROSS_DB | 否 | TRUE | [TRUE|FALSE] | 是否支持跨库复杂DML。 |
PER_QUERY_MEMORY_LIMIT | 是 | -1 | [-1-9223372036854775807] | 查询级内存池大小限制,默认是全局连接池的三分之一。 |
ENABLE_SPILL | 否 | FALSE | [FALSE|TRUE] | 临时表落盘的开关。 |
CONN_POOL_MIN_POOL_SIZE | 否 | 20 | [0-60] | 物理分库链接数最小值。 |
CONN_POOL_MAX_POOL_SIZE | 否 | 60 | [1-1600] | 物理分库链接数最大值。 |
CONN_POOL_MAX_WAIT_THREAD_COUNT | 否 | 0 | [-1-8192] | 单分库最大等待建连数(DRUID)。 |
CONN_POOL_IDLE_TIMEOUT | 否 | 30 | [1-60] | 物理空闲链接超时时间。 |
CONN_POOL_BLOCK_TIMEOUT | 否 | 5000 | [1000-60000] | 物理连接池获取连接的最大等待时间。 |
CONN_POOL_XPROTO_MAX_POOLED_SESSION_PER_INST | 否 | 512 | [1-8192] | 单个存储节点最大缓存会话数(私有协议)。 |
XPROTO_MAX_DN_CONCURRENT | 否 | 500 | [1-8192] | 单个存储节点最大并发请求数(私有协议)。 |
XPROTO_MAX_DN_WAIT_CONNECTION | 否 | 32 | [1-8192] | 单个存储节点最大请求等待数(私有协议) |
MERGE_SORT_BUFFER_SIZE | 否 | 2048 | [1024-81920] | TableScan层做归并排序使用的缓存大小,默认2 MB。 |
WORKLOAD_TYPE | 否 | [AP|TP] | 是否指定查询的workload,默认基于代价智能识别负载。 | |
EXECUTOR_MODE | 否 | [MPP|TP_LOCAL|AP_LOCAL] | 是否指定查询的执行模式,默认基于workload选择执行模式。 | |
ENABLE_MASTER_MPP | 否 | FALSE | [TRUE|FALSE] | 是否在主实例上开启MPP能力。 |
LOOKUP_JOIN_BLOCK_SIZE_PER_SHARD | 是 | 50 | [1-100000] | 在裁剪下BKAJOIN执行时的单分片约定的IN Values个数。 |
ENABLE_RUNTIME_FILTER | 否 | TRUE | [TRUE|FALSE] | Runtime Filter的开关。 |
FEEDBACK_WORKLOAD_AP_THRESHOLD | 否 | FALSE | [TRUE|FALSE] | 针对AP查询的HTAP FEEDBACK开关。 |
FEEDBACK_WORKLOAD_TP_THRESHOLD | 否 | FALSE | [TRUE|FALSE] | 针对TP查询的HTAP FEEDBACK开关。 |
MASTER_READ_WEIGHT | 否 | -1 | [0-100] | 查询流量按照(100-MASTER_READ_WEIGHT)设置比例路由给只读DN。 |
SHOW_ALL_PARAMS | 否 | FALSE | [TRUE|FALSE] | 是否显示SHOW全部变量。 |
FORCE_READ_OUTSIDE_TX | 否 | FALSE | [TRUE|FALSE] | 事务内是否在一个分库上强制开启多个连接。 |
ENABLE_COROUTINE | 是 | FALSE | [TRUE|FALSE] | 是否开启wisp协程。 |
TRUNCATE_TABLE_WITH_GSI | 否 | FALSE | [TRUE|FALSE] | 是否允许truncate包含GSI的表。 |
DDL_ON_GSI | 否 | FALSE | [TRUE|FALSE] | 是否允许直接在GSI表做DDL。 |
DML_ON_GSI | 否 | FALSE | [TRUE|FALSE] | 是否允许直接在GSI表做DML。 |
ENABLE_HASH_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否与允许HashJoin节点的生成。 |
ENABLE_BKA_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许BKAJoin节点生成。 |
ENABLE_NL_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许NLJoin节点生成。 |
ENABLE_SEMI_NL_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许将SemiJoin转成NLJoin来实现。 |
ENABLE_SEMI_HASH_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许将SemiJoin转成HashJoin来实现。 |
ENABLE_SEMI_BKA_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许将SemiJoin转成BKAJoin来实现。 |
ENABLE_SEMI_SORT_MERGE_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许将SemiJoin转成MergeJoin来实现。 |
ENABLE_MATERIALIZED_SEMI_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许将SemiJoin转成MaterializedJoin来实现。 |
ENABLE_SEMI_JOIN_REORDER | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许将SemiJoin参与CBO Reorder优化。 |
ENABLE_HASH_AGG | 否 | TRUE | [TRUE|FALSE] | 查询计划过程中是否允许生成HashAgg节点。 |
ENABLE_PARTIAL_AGG | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许将Agg拆分成二阶段来实现。 |
ENABLE_SORT_AGG | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许生成SortAgg节点生成。 |
ENABLE_PUSH_PROJECT | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许Project PushDown。 |
ENABLE_PUSH_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许Join PushDown。 |
ENABLE_PUSH_AGG | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许Agg PushDown。 |
ENABLE_CBO_PUSH_AGG | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许Agg透传Join。 |
ENABLE_PUSH_SORT | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许Sort PushDown。 |
ENABLE_STATISTIC_FEEDBACK | 否 | TRUE | [TRUE|FALSE] | 是否支持统计信息修正的Feedback。 |
ENABLE_CBO_PUSH_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许Join透传优化。 |
ENABLE_SORT_JOIN_TRANSPOSE | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否允许Sort透传Join。 |
CHUNK_SIZE | 否 | 1024 | [1-10240] | 设置执行器每次计算的批次大小。 |
ENABLE_SORT_MERGE_JOIN | 否 | TRUE | [TRUE|FALSE] | 优化查询计划过程中是否禁止MergeJoin节点生成。 |
ENABLE_BKA_PRUNING | 否 | TRUE | [TRUE|FALSE] | 是否开启BKAJoin的裁剪功能。 |
ENABLE_SPM | 否 | TRUE | [TRUE|FALSE] | 是否开启执行计划管理。 |
ENABLE_EXPRESSION_VECTORIZATION | 否 | TRUE | [TRUE|FALSE] | 是否开启表达式的向量化计算。 |
FORCE_DDL_ON_LEGACY_ENGINE | 否 | TRUE | [TRUE|FALSE] | 是否启用新DDL引擎。 |
PURE_ASYNC_DDL_MODE | 否 | FALSE | [TRUE|FALSE] | 是否以非阻塞的形式执行DDL任务,开启意味着客户端执行DDL后立即返回,通过show [full] ddl查看执行的情况。 |
DDL_JOB_REQUEST_TIMEOUT | 否 | 90000 | [1-9223372036854775807] | 设置DDL执行的最大超时时间,默认是25天。 |
LOGICAL_DDL_PARALLELISM | 否 | 1 | [1-10240] | 配置逻辑DDL执行的并发度,设置为1意味着是串行执行DDL任务。 |
ENABLE_BROADCAST_RANDOM_READ | 否 | TRUE | [TRUE|FALSE] | 是否开启广播表随机读优化。 |
STORAGE_DELAY_THRESHOLD | 否 | 16777216s | [0-16777216] | 查询过程中CN感知DN的延迟程度。如果延迟超过设置阈值,则路由给只读DN的只读流量会根据DELAY_EXECUTION_STRATEGY参数的设置策略执行。 |
DELAY_EXECUTION_STRATEGY | 否 | CONTINUE_TO_SLAVE | [CONTINUE_TO_SLAVE | CHANGE_TO_MASTER | THROW_EXCEPTION] | 当出现只读DN延迟超过阈值情况时,可设置如下三个取值:
|
STORAGE_BUSY_THRESHOLD | 否 | 100 | [0-16777216] | 当有多个只读DN时,如果某个只读DN上的活跃线程数超过设置阈值,则认为当前DN处于繁忙状态,只读流量路由时会避开该只读DN。如果所有的只读DN都处于繁忙状态,那么只读流量会随机路由给一个只读DN。 |
ENABLE_CONSISTENT_REPLICA_READ | 否 | TRUE | [TRUE|FALSE] | 一致性读需求的开关项。 TRUE:路由给只读DN的流量可以满足一致性读的需求,读到已提交最新鲜的数据。 FALSE:路由给只读DN的流量读取数据的新鲜程度依赖于主备之间的同步延迟。 |
SUPPORT_INSTANT_ADD_COLUMN | 否 | OFF | [ON|OFF] | 秒级加字段(Instant Add Column)功能的开关,通过 |
ENABLE_STATEMENTS_SUMMARY | 否 | true | [true|false] | SQL聚合开关。 |
STATEMENTS_SUMMARY_PERCENT | 否 | 1 | [0-100] | SQL聚合百分比。 |