

# 指定数据库参数
<a name="USER_ParamValuesRef"></a>

数据库参数类型包括：
+ 整数
+ Boolean
+ String
+ 长整型
+ Double
+ Timestamp
+ 其他定义的数据类型的对象
+ 整数、布尔值、字符串、long、double、时间戳或对象类型的值的数组

您还可以使用表达式、公式和函数指定整数和布尔参数。

**Contents**
+ [数据库参数公式](#USER_ParamFormulas)
  + [数据库参数公式变量](#USER_FormulaVariables)
  + [数据库参数公式运算符](#USER_FormulaOperators)
+ [数据库参数函数](#USER_ParamFunctions)
+ [数据库参数日志表达式](#USER_ParamLogExpressions)
+ [数据库参数值示例](#USER_ParamValueExamples)

## 数据库参数公式
<a name="USER_ParamFormulas"></a>

数据库参数公式是一种可解析为整数值或布尔值的表达式。可以将表达式用大括号括起来：\$1\$1。可以为数据库参数值使用公式，也可以将公式用作数据库参数函数的参数。

**语法**  

```
{FormulaVariable}
{FormulaVariable*Integer}
{FormulaVariable*Integer/Integer}
{FormulaVariable/Integer}
```

### 数据库参数公式变量
<a name="USER_FormulaVariables"></a>

每个公式变量会返回一个整数或布尔值。变量的名称是区分大小写的。

*AllocatedStorage*  
返回一个整数，它表示数据卷的大小（以字节为单位）。

*DBInstanceClassMemory*  
该变量会返回一个整数，表示数据库进程可用的内存字节数。这个数字是以数据库实例类的内存总量开始在内部计算得出的。从此处，计算结果将减去为操作系统以及管理实例的 RDS 进程预留的内存。因此，该数字总是略低于 [Amazon Aurora数据库实例类](Concepts.DBInstanceClass.md) 中实例类表所示的内存数字。确切的值取决于多种因素的组合。其中包括实例类、数据库引擎，以及其适用于 RDS 实例还是适用于属于 Aurora 集群一部分的实例。

*DBInstanceVCPU*  
返回一个整数，它表示 Amazon RDS 用于管理实例的虚拟中央处理器 (vCPU) 的数量。

*EndPointPort*  
返回一个整数，它表示连接到数据库实例时使用的端口。

*TrueIfReplica*  
如果数据库实例是只读副本，返回 `1`，如果不是只读副本，则返回 `0`。这是 Aurora MySQL 中 `read_only` 参数的默认值。

### 数据库参数公式运算符
<a name="USER_FormulaOperators"></a>

数据库参数公式支持两个运算符：除法和乘法。

*除法运算符：/*  
用除数除以被除数，返回整数型商。商中的小数不四舍五入，直接截断。  
语法  

```
dividend / divisor
```
被除数和除数参数必须是整数型表达式。

*乘法运算符：\$1*  
将表达式乘以表达式，返回表达式的乘积。表达式中的小数不四舍五入，直接截断。  
语法  

```
expression * expression
```
两个表达式必须都是整数型。

## 数据库参数函数
<a name="USER_ParamFunctions"></a>

您可以将数据库参数函数的参数指定为整数或公式。每个函数必须具有至少一个参数。将多个参数指定为逗号分隔的列表。列表不能拥有任何空成员，如 *argument1*、*argument3*。函数名称区分大小写。

*IF*  
返回一个参数。  
语法  

```
IF(argument1, argument2, argument3)
```
如果第一个参数的计算结果为 true，则返回第二个参数。否则返回第三个参数。

*GREATEST*  
返回整数型或者参数公式列表中最大的值。  
语法  

```
GREATEST(argument1, argument2,...argumentn)
```
返回整数。

*LEAST*  
返回整数型或者参数公式列表中最小的值。  
语法  

```
LEAST(argument1, argument2,...argumentn)
```
返回整数。

*SUM*  
添加指定整数型或者参数公式的值。  
语法  

```
SUM(argument1, argument2,...argumentn)
```
返回整数。

## 数据库参数日志表达式
<a name="USER_ParamLogExpressions"></a>

您可以为日志表达式设置整数数据库参数值。可以将表达式用大括号括起来：\$1\$1。例如：

```
{log(DBInstanceClassMemory/8187281418)*1000}
```

`log` 函数表示日志基数 2。此示例还使用了 `DBInstanceClassMemory` 公式变量。请参阅 [数据库参数公式变量](#USER_FormulaVariables)。

## 数据库参数值示例
<a name="USER_ParamValueExamples"></a>

这些示例展示了如何使用公式、函数和表达式来表达数据库参数的值。

**警告**  
在数据库参数组内设置参数不当可能会产生意外的不利影响。可能包括性能下降和系统不稳定。修改数据库参数时应保持谨慎，且修改数据库参数组前要备份数据。将参数组更改应用到生产数据库实例前，请在使用时间点还原创建的测试数据库实例上试用这些参数组更改。

**Example 使用数据库参数函数 LEAST**  
您可以指定 Aurora MySQL `LEAST` 参数值 中的 `table_definition_cache` 函数。使用它可以将可存储在定义缓存中的表定义的数量设置为 `DBInstanceClassMemory`/393040 或 20000 中的较小值。  

```
LEAST({DBInstanceClassMemory/393040}, 20000)
```