You need to enable JavaScript to run this app.
导航
参数表达式
最近更新时间:2025.03.25 10:11:38首次发布时间:2025.03.25 10:11:38
我的收藏
有用
有用
无用
无用

veDB MySQL 实例的部分参数允许将其运行值配置为与实例规格相关的表达式。本文将介绍支持使用表达式配置的参数以及表达式的配置规则。

适用场景

在修改实例参数、创建参数模板时,可以将参数运行值配置为表达式。配置为表达式后,云数据库 veDB MySQL 版会根据实例规格按照表达式自动计算结果,并将计算结果设定为参数的实际运行值。

功能说明

在 veDB MySQL 实例的可修改参数中,有部分参数的值与实例的规格存在较大关联。当变更实例配置后,为了使实例达到最佳运行状态,需要依据实例新的规格重新为这些参数设定运行值。为了增强用户的使用体验,提升 veDB MySQL 实例的工作效率,云数据库 veDB MySQL 版为这些参数赋予了配置为表达式的功能。

支持表达式配置的参数及默认的表达式如下表所示:

参数名称默认值取值范围是否重启生效
innodb_buffer_pool_size{DBNodeClassMemory*3/4}[{DBNodeClassMemory*1/16}-{DBNodeClassMemory*4/5}]
innodb_purge_threads{MIN(MAX(DBNodeClassCPU,4),32)}[1-32]
table_open_cache_instances{MAX(DBNodeClassCPU,32)}[1-64]
thread_pool_size{DBNodeClassCPU*4}[{DBNodeClassCPU*1}-{DBNodeClassCPU*10}]
table_open_cache{MAX(DBNodeClassMemory/1073741824*256,2048)}[1-524288]
join_buffer_size{MIN(DBNodeClassMemory/1048576*128,262144)}[128-67108864]

使用限制

  • 取值范围为表达式的参数,修改时既可以设置为表达式,也可以设置为具体的值。取值范围请参考功能说明

  • 变更实例配置后直接沿用变配前的设定值。

  • 以下参数的值在配置时应满足相应的规则。如不满足规则,会按照表达式的规则在满足参数取值范围的前提下向下取整,详情请参见参数修改规则

    • join_buffer_size 的值应为 128 的整数倍。

    • innodb_buffer_pool_size 的值应为 1024 的整数倍,且为节点内存大小的 50% ~ 75%。

表达式语法

参数表达式支持使用的变量和函数如下:

  • 变量

    • DBNodeClassMemory:计算节点规格的内存大小,整数型。默认单位为 Byte。

    • DBNodeClassCPU:计算节点规格的 CPU 核数,整数型。

  • 运算符

    • 表达式语法:使用{}包裹。

    • 除法运算符(/):用被除数除以除数,返回整数型商。如果商是小数,则不四舍五入,只取整数部分。语法:dividend/divisor

    • 乘法运算符(*):两个乘数相乘,返回整数型积。如果积是小数,则不四舍五入,只取整数部分。语法: expression*expression

    说明

    被除数、除数和乘数均不支持小数运算。例如支持 {DBNodeClassMemory*3/4},但不支持{DBNodeClassMemory*0.75/4}

  • 函数

    函数函数说明使用示例
    MIN(x, y)取 x 与 y 两者间的较小值。{MIN(DBNodeClassMemory/1073741824*512,2048)}
    MAX(x, y)取 x 与 y 两者间的较大值。{MAX(DBNodeClassCPU,2)}