You need to enable JavaScript to run this app.
文档中心
云数据库 MySQL 版

云数据库 MySQL 版

复制全文
下载 pdf
参数管理
表达式参数
复制全文
下载 pdf
表达式参数
本文介绍了支持可使用表达式配置的参数和表达式的配置规则。​
功能说明​
在 MySQL 实例的可修改参数中,部分参数的值跟实例的规格有较大关联。在变更实例配置后,为追求实例的最佳运行状态,需要根据实例新的规格重新为这些参数设定运行值。为提升用户的使用体验,提高 MySQL 实例的工作效率,云数据库 MySQL 版为这些参数提供了配置为表达式的能力。​
配置为表达式是指支持将这些参数的运行值配置为与实例规格相关的表达式。配置为表达式后,云数据库 MySQL 版会根据实例规格按照表达式自动计算结果,并将计算结果设定为参数的运行值。支持表达式配置的参数及默认的表达式如下表所示:​
​
参数名称​
表达式示例​
表达式说明​
innodb_buffer_pool_instances​
{LEAST(DBInstanceMemory/1073741824, 8)}​
取实例内存数/1073741824 和 8 之间的最小值作为参数运行值。​
innodb_buffer_pool_size​
{DBInstanceMemory*3/4}​
取实例内存数的 3/4 作为参数运行值。​
innodb_lru_scan_depth​
{BY_STORAGE_TYPE(1024, 100)}​
根据实例的存储类型进行取值。​
  • 实例的存储类型为本地盘时,该参数的运行值为 1024。​
  • 实例的存储类型为云盘时,该参数的运行值为 100。​
innodb_page_cleaners​
{LEAST(DBInstanceMemory/1073741824, 8)}​
取实例内存数/1073741824 和 8 之间的最小值作为参数运行值。​
read_buffer_size​
{LEAST(DBInstanceMemory/1048576*128, 262144)}​
取实例内存数/1048576*128 和 262144 之间的最小值作为参数运行值。​
table_definition_cache​
{LEAST(DBInstanceMemory/1073741824*512, 2048)}​
取实例内存数/1073741824*512 和 2048 之间的最小值作为参数运行值。​
thread_cache_size​
{LEAST(DBInstanceMemory/1073741824*512, 2048)}​
取实例内存数/1073741824*512 和 2048 之间的最小值作为参数运行值。​
loose_innodb_default_index_merge_threshold​
{BY_STORAGE_TYPE(50, 25)}​
​
根据实例的存储类型进行取值。​
  • 实例的存储类型为本地盘时,该参数的运行值为 50。​
  • 实例的存储类型为云盘时,该参数的运行值为 25。​
loose_thread_pool_size​
{MAX(DBInstanceCpu, 2)}​
取实例 CPU 核数 和 2 之间的最大值作为参数运行值。​
max_connections​
{MAP(DBInstanceCpu, DBInstanceMemory)}​
取实例 CPU 核数 和 实例内存数 所对应的规格在产品规格列表中的最大连接数作为参数运行值。​
table_open_cache​
{LEAST(DBInstanceMemory/1073741824*256, 2048)}​
取实例内存数/1073741824*256 和 2048 之间的最小值作为参数运行值。​
table_open_cache_instances​
{LEAST(DBInstanceMemory/1073741824, 16)}​
取实例内存数/1073741824 和 16 之间的最小值作为参数运行值。​
join_buffer_size​
{LEAST(DBInstanceMemory/1048576*128, 262144)}​
取实例内存数/1048576*128 和 262144 之间的最小值作为参数运行值。​
​
适用场景​
在修改实例参数、批量修改实例参数、创建参数模板时,可以将参数运行值配置为表达式。​
使用限制​
  • 支持表达式配置的参数依然支持将运行值设定为具体的值。但在设定为具体值时,不同的参数在变更实例配置后设定运行值的规则不同。部分参数会在变更实例配置后继续按照表达式计算和设定新的运行值,部分参数在变更实例配置后继续使用变更实例配置前设定的具体值。​
  • 重新计算运行值的参数有:​
  • innodb_buffer_pool_instances​
  • innodb_buffer_pool_size​
  • read_buffer_size​
  • table_definition_cache​
  • thread_cache_size​
  • loose_thread_pool_size​
  • join_buffer_size​
  • 沿用变配前设定值的参数有:​
  • innodb_page_cleaners​
  • max_connections​
  • table_open_cache​
  • table_open_cache_instances​
  • 以下参数的值在配置时应满足相应的规则。如不满足规则,会按照表达式的规则在满足参数取值范围的前提下向下取整。​
  • innodb_buffer_pool_size 的值应为 1024 的整数倍,且应大于等于实例内存的 50%,小于等于实例内存的 85%。​
  • read_buffer_size 的值应为 4096 的整数倍。​
  • join_buffer_size 的值应为 128 的整数倍。​
  • 在为实例参数配置表达式时,要求该实例应用的参数模板中已为该参数配置了表达式的运行值。 云数据库 MySQL 版提供的系统模板已为支持表达式配置的参数运行值添加了表达式,如您创建的实例应用了系统模板,这些参数的运行值会自动根据表达式进行计算。​
表达式语法​
参数的表达式支持使用的变量和函数如下:​
  • 变量​
  • DBInstanceMemory:实例主节点的内存数。​
  • DBInstanceCpu:实例主节点的 CPU 核数。​
说明​
  • DBInstanceMemory 和 DBInstanceCpu 为实例主节点的内存数和核数。即使该参数的生效范围为只读节点,也会按照实例主节点的规格进行取值,再按照表达式计算运行值。​
  • 但 innodb_buffer_pool_size 参数不遵循以上原则,该参数的计算方法为:​
  • 当该参数的生效范围仅为主节点和备节点(OnlyMasterSlaveNode)时,按主节点规格进行计算。​
  • 当该参数生效范围为所有节点 (AllNode)、所有只读节点 (OnlyReadOnlyNode) 或指定的只读节点 (CustomNode) 时,对于每个目标只读节点,按该节点的规格独立进行计算、校验和修正。​
  • 函数​
  • ​
    函数​
    函数说明​
    使用示例​
    LEAST(x, y)​
    取 x 与 y 两者间的较小值。​
    {LEAST(DBInstanceMemory/1073741824*512, 2048)}​
    MAX(x, y)​
    取 x 与 y 两者间的较大值。​
    {MAX(DBInstanceCpu, 2)}​
    MAP(x, y)​
    按照 x 与 y 在产品规格列表映射,对最大连接数取值。​
    {MAP(DBInstanceCpu, DBInstanceMemory)}​
    ​
​
最近更新时间:2026.10.16 15:31:05
这个页面对您有帮助吗?
有用
有用
无用
无用