データベースのパラメーターを調整することで、パフォーマンスの最適化、セキュリティの強化、または特定の機能要件を満たすことができます。PolarDB for PostgreSQL は、クラウド環境で優れたパフォーマンスと安定性を提供するために、コミュニティ版の一部のパラメーターを事前に最適化しています。以下のセクションでは、パラメーターチューニングに役立つ、コアパラメーターの完全なパラメーターリファレンスと構成の推奨事項を説明します。
重要なパラメーター
PolarDB for PostgreSQL のデフォルトのパラメーター値は、パフォーマンス、可用性、信頼性を最適化するように構成されています。これらの値は、コミュニティ版のデフォルト値とは異なる場合があります。具体的には、PolarDB は最適なパフォーマンスを確保するために、以下のパラメーターをデフォルト値に設定しています。必要に応じてコンソールで変更できます。
パラメータ | 説明 |
| このパラメーターは、トランザクションがクライアントに成功のインジケーターを返す前に、先行書き込みログ (WAL) レコードがディスクに書き込まれるのを待つ必要があるかどうかを制御します。有効な値は次のとおりです。
説明
|
| このパラメーターは、WAL に書き込まれる情報量を決定します。有効な値は次のとおりです。
説明
|
| このパラメーターは、監査ログのレベルを設定します。デフォルト値は ddl で、DDL に対応する SQL 文のみが監査されることを意味します。ログの出力を少なくすると、データベースのパフォーマンスが向上します。有効な値は次のとおりです。
説明
|
一般的なパラメーターリファレンス
一部のパラメーターはコンソールで変更できません。クラスターにログインし、コマンドラインを使用して表示および変更できます。
接続と認証
パラメーター | 説明 |
| クライアントが ID 認証を完了するまでの最大待機時間を設定します。この時間内にクライアントが認証に失敗した場合、サーバーは接続を閉じて、問題のあるクライアントが長時間接続リソースを占有するのを防ぎます。
|
| インスタンスが Secure Sockets Layer (SSL) 暗号化接続を有効にしてサポートするかどうかを制御します。
|
自動バキューム
autovacuum プロセスは、デッドタプル (削除または更新されたデータからの行) によって占有されている領域を再利用し、テーブル統計を更新します。このプロセスは、データベースのパフォーマンスを維持するために重要です。
パラメーター | 説明 |
|
説明 このパラメーターが無効になっていても、トランザクション ID 周回を防ぐために必要な場合、システムは vacuum プロセスを強制的に開始します。 |
| 同時に実行できる自動バキュームワーカープロセス (自動バキュームランチャーを除く) の最大数を指定します。
|
| autovacuum プロセスがデータベースのチェックを行う間の最小休止時間を指定します。各ラウンドで、バックグラウンドプロセスはデータベースをチェックし、必要に応じてデータベース内のテーブルに対して
|
|
|
|
|
|
|
|
|
| トランザクション ID 周回を防ぐために
説明 autovacuum が無効になっていても、システムは周回を防ぐために autovacuum プロセスを開始します。 |
| multixact ID 周回を防ぐために
説明 autovacuum が無効になっていても、システムは周回を防ぐために autovacuum プロセスを開始します。 |
| 自動
|
| 自動
|
チェックポイントとバックグラウンド書き込み
パラメーター | 説明 |
| 自動 WAL チェックポイント間の最大時間間隔を設定します。
|
| バックグラウンドライターがダーティページをフラッシュする 2 つのラウンド間の休止時間。
|
| バックグラウンドプロセスによって書き込まれたダーティページの数がこのしきい値を超えると、オペレーティングシステムはファイルキャッシュからディスクにデータをフラッシュします。
|
| チェックポイント後にデータページが最初に変更されたときに、そのデータページの全内容を WAL ログに書き込むかどうかを制御します。この機能は、停電などの障害による部分的なページ書き込みを防ぐために使用されます。
|
| WAL データをメモリ内に一時的に保存するために使用される共有メモリのサイズ。
|
| 先行書き込みログ (WAL) に書き込まれる情報のレベルを制御します。異なるレベルが異なる機能をサポートします。
|
| walwriter プロセスが WAL フラッシュ操作の 2 つのラウンド間で行う最大休止時間。
|
クエリの計画と実行
パラメーター | 説明 |
| クエリオプティマイザーがテーブル制約 (CHECK 制約など) を使用してクエリを最適化するかどうかを制御します。特に、パーティション分割テーブルでのクエリプルーニングに適用されます。
|
| インデックススキャン中に各インデックスエントリを処理するためのプランナーのコスト見積もりを設定します。
|
| クエリ内の各オペレーターまたは関数を処理するためのプランナーのコスト見積もりを設定します。
|
| クエリ内の各行を処理するためのプランナーのコスト見積もりを設定します。
|
| クエリオプティマイザが計画および実行フェーズでパーティションプルーニングの最適化を有効にして、無関係なパーティションのスキャンをスキップするかどうかをコントロールします。
|
| シーケンシャルディスクページフェッチに対するプランナーのコスト見積もりを設定します。
|
| 特定のクエリに対して Just-In-Time (JIT) コンパイルを有効にして実行を高速化するかどうかを制御します。
|
タイムアウト設定
パラメーター | 説明 |
| トランザクションが潜在的なデッドロックをチェックする前にロックを待つ最大時間。
|
| トランザクションが「トランザクション内でアイドル」状態にあることが許可される最大時間。この時間を超えるとセッションは終了します。このタイムアウトを無効にするには 0 に設定します。
|
| 単一の操作がテーブル、行、またはその他のオブジェクトのロックを取得するために待機する最大時間。この時間を超えると、操作はエラーで終了します。このタイムアウトを無効にするには 0 に設定します。これは無期限に待機することを意味します。
|
| 単一の SQL 文の最大実行時間を制限します。この時間を超えると、文は終了します。タイムアウト制限なしの場合は 0 に設定します。
|
ロギングと監査
パラメーター | 説明 |
| クラスターの操作中にログをキャッチして書き込む役割を担うログ収集プロセスを有効にするかどうかを制御します。
|
| 成功した各クライアント接続をログに記録するかどうかを制御します。
|
| 各クライアントの切断をログに記録するかどうかを制御します。
|
| エラーログの詳細度を設定します。
|
| 指定された実行時間しきい値を超えた低速 SQL 文を記録します。すべての SQL 文を記録するには 0 に設定します。低速 SQL 文ログ機能を無効にするには -1 に設定します。
|
| ログに記録される SQL 文の種類を制御します。
|
レプリケーションと高可用性
パラメーター | 説明 |
| セカンダリノード (読み取り専用ノード) が読み取り専用クエリを受け入れることができるかどうかをコントロールします。
|
| 読み取り専用ノードが、実行中のクエリに関するフィードバックをプライマリノードに送信するかどうかを制御します。有効にすると、プライマリノードは、読み取り専用ノードのクエリでまだ使用されている古いデータ行のクリーンアップを遅らせ、クエリの競合を減らします。
|
| インスタンスがサポートできるレプリケーションスロットの最大数。
|
リソース管理
パラメーター | 説明 |
| 動的共有メモリの実装方法を指定します。
|
| 高速更新モードでの GIN インデックスの保留リストの最大メモリサイズを設定します。
|
| インスタンスがオペレーティングシステムによって提供されるラージページを使用しようとするかどうかを制御します。
|
| 各データベースバックグラウンドプロセスが同時に開くことを許可されるファイルハンドルの最大数。
|
| 各トランザクションが保持できるロックの最大数。
|
| クラスター内で同時に準備状態 (2フェーズコミットプロトコル) にできるトランザクションの最大数。
|
| クラスターが開始できるバックグラウンドワーカープロセスの総最大数 (パラレルクエリワーカープロセスを含む)。
|
| 単一のバックグラウンドプロセスが使用できる一時ファイル (ソートやハッシュなどの操作に使用) の合計サイズを制限します。制限なしの場合は -1 に設定します。
|
フォーマットと動作
パラメーター | 説明 |
| 日付と時刻の値の表示フォーマットを設定します。
|
|
|
| 標準精度を超えて浮動小数点数に表示される追加の有効桁数を制御します。これは、浮動小数点値をより正確に表示するために使用されます。
|
| データベースが
|
| データベースセッションがタイムスタンプを表示および解釈するために使用するタイムゾーンを指定します。
|