

# DB パラメータの指定
<a name="USER_ParamValuesRef"></a>

DB パラメータの種類には、次のものがあります。
+ 整数
+ ブール値
+ 文字列
+ Long
+ ダブル
+ タイムスタンプ
+ 他の定義されたデータ型オブジェクト
+ 整数、ブール値、文字列、長整数、倍精度、タイムスタンプ、オブジェクト型の値の配列

表現、数式、関数を使用して、整数およびブール型パラメータを指定することもできます。

**Contents**
+ [DB パラメータ式](#USER_ParamFormulas)
  + [DB パラメータ式の変数](#USER_FormulaVariables)
  + [DB パラメータ式の演算子](#USER_FormulaOperators)
+ [DB パラメータ関数](#USER_ParamFunctions)
+ [DB パラメータログ式](#USER_ParamLogExpressions)
+ [DB パラメータ値の例](#USER_ParamValueExamples)

## DB パラメータ式
<a name="USER_ParamFormulas"></a>

DB パラメータ式は整数値に解決される式あるいはブール値です。式は中かっこ \$1\$1 で囲みます。式は、DB パラメータ値、または DB パラメータ関数の引数として使用できます。

**構文**  

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

### DB パラメータ式の変数
<a name="USER_FormulaVariables"></a>

各式の変数は整数あるいはブール値を返します。変数名では大文字と小文字が区別されます。

*AllocatedStorage*  
データボリュームのサイズ (バイト単位) を表す整数を返します。

*DBInstanceClassMemory*  
データベースプロセスに対し、使用可能なメモリのバイト数を整数で返します。この数値は、DB インスタンスクラスの合計メモリ量から始めて内部的に計算されます。この数から、インスタンスを管理する RDS プロセスとオペレーティングシステム用に予約されているメモリ量を減算します。したがって、この数値は、「[Amazon Aurora DB インスタンスクラス](Concepts.DBInstanceClass.md)」のインスタンスクラステーブルに示されているメモリ値よりも、常にやや低くなります。正確な値は、複数の要因の組み合わせによって異なります。これらには、インスタンスクラスと DB エンジンが含まれ、この値が適用されるのが RDS インスタンスなのか、Aurora クラスターに含まれているインスタンスなのかによっても異なります。

*DBInstanceVCPU*  
Amazon RDS がインスタンスの管理に使用する仮想中央演算装置 (vCPU) の数を表す整数を返します。

*EndPointPort*  
DB インスタンスに接続するときに使用されるポートを表す整数を返します。

*TrueIfReplica*  
DB インスタンスがリードレプリカである場合は `1`、リードレプリカでない場合は `0` が返されます。これは Aurora MySQL の`read_only` パラメータのデフォルト値です。

### DB パラメータ式の演算子
<a name="USER_FormulaOperators"></a>

DB パラメータ式では、2 つ演算子 (除算と乗算) がサポートされています。

*除算演算子: /*  
被除数を除数で割り、整数の商を返します。商の小数部分は四捨五入されず切り捨てられます。  
構文  

```
dividend / divisor
```
被除数と除数の引数は整数式である必要があります。

*乗算演算子: \$1*  
式を乗算し、式の積を返します。式の小数部分は四捨五入されず切り捨てられます。  
構文  

```
expression * expression
```
両方の式は整数である必要があります。

## DB パラメータ関数
<a name="USER_ParamFunctions"></a>

DB パラメータ関数の引数は、整数または数式で指定します。各関数には 1 つ以上の引数が必要です。複数の引数をカンマ区切りのリストで指定します。リストには、*argument1*,,*argument3* など、空のメンバーを使用することはできません。関数名では大文字と小文字は区別されません。

*IF*  
引数を返します。  
構文  

```
IF(argument1, argument2, argument3)
```
最初の引数が true と評価する場合に、2 番目の引数を返します。それ以外の場合には、3 番目の引数を返します。

*GREATEST*  
整数またはパラメータ式のリストから最大値を返します。  
構文  

```
GREATEST(argument1, argument2,...argumentn)
```
整数を返します。

*LEAST*  
整数またはパラメータ式のリストから最小値を返します。  
構文  

```
LEAST(argument1, argument2,...argumentn)
```
整数を返します。

*SUM*  
指定した整数またはパラメータ式の値を加算します。  
構文  

```
SUM(argument1, argument2,...argumentn)
```
整数を返します。

## DB パラメータログ式
<a name="USER_ParamLogExpressions"></a>

整数 DB パラメータ値をログ式に設定できます。式は中かっこ \$1\$1 で囲みます。次に例を示します。

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

`log` 関数はログベース 2 を表します。この例では、`DBInstanceClassMemory` 数式変数も使用しています。「[DB パラメータ式の変数](#USER_FormulaVariables)」を参照してください。

## DB パラメータ値の例
<a name="USER_ParamValueExamples"></a>

これらの例は、DB パラメータの値に対して数式、関数、および式を使用していることを示しています。

**警告**  
DB パラメータグループのパラメータを不適切に設定すると、意図しない悪影響が生じる可能性があります。これには、パフォーマンスの低下やシステムの不安定化が含まれます。データベースパラメータの変更時には注意が必要です。DB パラメータグループの変更前にはデータをバックアップしてください。パラメータグループの変更は、テスト DB インスタンス (ポイントインタイム復元を使用して作成) で試してから、本番稼働用 DB インスタンスに適用してください。

**Example DB パラメータ関数 LEAST の使用**  
Aurora MySQL `LEAST` パラメータ値で `table_definition_cache` 関数を指定できます。これを使用して、定義キャッシュに保管できるテーブル定義の数を `DBInstanceClassMemory`/393040 または 20,000 のいずれか少ない方に設定します。  

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