TDSQL-C MySQL 版部分参数新增了公式化参数值能力,方便参数更智能地适配数据库,当实例规格发生变更时,使用公式设置的参数值会适应规格的变更而自动变化,使数据库始终保持最优或最稳定的状态。
注意事项
本次参数公式仅支持参数值为数值类型的参数,其余数据类型的参数值不支持公式化。
参数设置公式化数值后将随着实例规格的变更而变化,若您设置的公式计算出的参数值超过该参数限制的取值范围(最小值到最大值),则该参数取值会按照参数范围最近的边界值选取,即,若低于最小值,则参数取范围最小值,若高于最大值,则参数取范围最大值。
示例:
某参数根据设置的公式计算出的参数值为7,而该参数限制的取值范围为1 - 6,则参数取值为6。
某参数根据设置的公式计算出的参数值为5,而该参数限制的取值范围为6 - 10,则参数取值为6。
导出为配置文件/从配置文件导入,均不支持公式化参数值,导出时将自动调整为整数值型。
为保证数据库可用性,目前仅支持部分参数进行公式化设置,更多参数敬请期待后续迭代。
参数公式说明
参数公式化组成 | 名称 | 说明 |
变量 | DBinitMemory | 实例规格的内存大小,整数型,单位为MB。 |
| DBInitCpu | 实例规格的 CPU 核数,整数型,单位为核。 |
运算符 | 除法运算符(/) | 用被除数除以除数,返回整数型商。如果计算结果为小数,会截断取整数部分。 |
| 乘法运算符(*) | 两个乘数相乘,返回整数型积。如果计算结果为小数,会截断取整数部分。 |
函数 | MIN() | 返回整数型或者参数公式列表中最小的值。 |
| MAX() | 返回整数型或者参数公式列表中最大的值。 |
示例:
若公式为 MAX(DBInitCpu/2,4),则表明参数值为该实例的 CPU 除以2,与4进行对比,返回最大值。
支持参数公式的参数
以下参数为当前版本支持的参数公式,默认公式的数值部分均可自定义修改,您可根据业务需求自定义调整。
参数 | 说明 | 默认公式 |
binlog_cache_size | 在事务期间,用于保存更改的二进制日志的内存缓冲区的大小。 | MIN(DBInitMemory/4000 * 32768,2097152) |
max_heap_table_size | 此变量为设置 MEMORY 允许用户创建的表增长到的最大大小。 | MIN( DBInitMemory/1000 * 4194304,134217728) |
innodb_buffer_pool_size | 缓冲池的大小(以字节为单位),InnoDB 缓存表和索引数据的内存区域。 | min((DBInitMemory - 500), DBInitMemory*3/4)*1000000 |
innodb_read_io_threads | InnoDB 中用于读操作的 I/O 线程数。 | MAX(DBInitCpu/2,4) |
innodb_write_io_threads | InnoDB 中用于写操作的 I/O 线程数。 | MAX(DBInitCpu/2,4) |
join_buffer_size | 用于普通索引扫描、范围索引扫描和执行全表扫描的表连接的缓冲区的最小大小。 | MIN(DBInitMemory*128,262144) |
max_connections | 最大连接数。 | MIN(DBInitMemory/4+500,100000) |
table_definition_cache | 打开的表缓存实例的数量。 | MAX(DBInitMemory*512/1000,2048) |
table_open_cache | 表描述符缓存大小,可减少文件打开/关闭次数。 | MIN(MAX(DBInitMemory*512/1000,2048), 65536) |
thread_pool_size | 该参数设置线程池中线程组的数量,默认值时表示线程组数与 CPU 数量一致。 | MIN(DBInitCpu,64) |
thread_cache_size | 应该在缓存中保留多少线程以供重用。 | MIN(DBInitMemory/125+8,512) |
tmp_table_size | 内部内存临时表的最大大小。 | MIN(DBInitMemory/1000*4194304,134217728) |