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)} |