ビジネスにオンライントランザクション処理(OLTP)サービスとオンライン分析処理(OLAP)サービスの両方が含まれる場合は、データベースプロキシのクラスターエンドポイント機能を使用して、IMCI 機能に基づいて OLAP リクエストをカラムストアノードに、OLTP リクエストをローストアノードに分散できます。
背景情報
PolarDB for MySQL は、次の読み取り専用ノードタイプをサポートしています。
読み取り専用ローストアノード:ローストア機能に基づいて読み取りリクエストを処理します。 ローストアノードは、OLTP 読み取りリクエストを処理する際に、より高いパフォーマンスを提供します。
読み取り専用カラムストアノード:カラムストア機能に基づいて読み取りリクエストを処理します。 カラムストアノードは、複雑な SQL クエリや分析 SQL クエリなど、OLAP 読み取りリクエストを処理する際に、ローストアノードよりも優れたパフォーマンスを発揮します。
デフォルトでは、クラスターには 1 つのプライマリノードと 1 つの読み取り専用ローストアノードが含まれています。 読み取り専用ノードを追加するときに、ローストアノードまたはカラムストアノードを追加することを選択できます。 詳細については、「読み取り専用カラムストアノードを追加する」をご参照ください。
SQL クエリのパフォーマンスを最大化するために、クラスターエンドポイントを設定して、OLAP リクエストをカラムストアノードに、OLTP リクエストをローストアノードに分散できます。
手動リクエスト分散と自動リクエスト分散がサポートされています。
OLTP と OLAP の混在シナリオでの自動リクエスト分散
OLAP リクエストと OLTP リクエストが同じアプリケーションによってデータベースへのアクセスに送信される場合、2 つのタイプのリクエストは、スキャンされた行数に基づいて、カラムストアノードまたはローストアノードに自動的に分散できます。
ローストアノードとカラムストアノード間で自動リクエスト分散を実装するには、クラスターエンドポイントは次のいずれかの要件を満たす必要があります。
クラスターエンドポイントの読み取り/書き込みモードが 読み書き に設定されています。
クラスターエンドポイントの読み取り/書き込みモードが ReadOnly に設定されており、負荷分散ポリシーが [アクティブリクエストベースの負荷分散] に設定されています。
リクエスト分散ルール:
OLTP サービス:ほとんどの場合、読み取りリクエストと書き込みリクエストが含まれます。 すべての書き込みリクエストはプライマリノードによって処理されます。 読み取りリクエストは、読み取り専用ローストアノードまたはプライマリノードによって処理されます。
OLAP サービス:ほとんどの場合、読み取りリクエストのみが含まれます。 すべての読み取りリクエストは、読み取り専用カラムストアノードによって処理されます。
自動リクエスト分散ソリューション:
プライマリノードと読み取り専用カラムストアノード間のリクエスト分散:プライマリノードはローストアモードでもあるため、OLTP 読み取りリクエストを処理できます。 このソリューションでは、書き込みリクエストと OLTP 読み取りリクエストはプライマリノードに分散されます。 OLAP 読み取りリクエストは、読み取り専用カラムストアノードに分散されます。
読み取り専用ローストアノードと読み取り専用カラムストアノード間のリクエスト分散:このソリューションでは、書き込みリクエストはプライマリノードに分散され、OLTP 読み取りリクエストは読み取り専用ローストアノードまたはプライマリノードに分散され、OLAP 読み取りリクエストは読み取り専用カラムストアノードに分散されます。
自動リクエスト分散ルール:
SQL 文の実行コストのしきい値を下回るリクエストは、ローストアノードまたはプライマリノードに分散されます。 複数のローストアノードが使用可能な場合、SLB は宛先ローストアノードを決定します。
SQL 文の予想実行コストのしきい値を超えるリクエストは、カラムストアノードに分散されます。 複数のカラムストアノードが使用可能な場合、SLB は宛先カラムストアノードを決定します。

詳細については、「ローストアノードとカラムストアノード間の自動リクエスト分散」をご参照ください。
オプティマイザーによって推定される実行コストは、使用されるサンプリング方法とサンプリング精度のために、実際の値と大きく異なる場合があります。 その結果、一部の低速クエリがローストアノードに自動的に分散される可能性があります。 この問題を防ぐために、システムの適応実行計画切り替えを有効にして、ローストアノードに誤って分散された低速クエリをカラムストアノードに自動的に切り替えることができます。 適応実行計画の切り替えを有効にする方法については、「適応実行計画の切り替え」をご参照ください。
OLTP と OLAP が分離されたシナリオでのローストアノードとカラムストアノード間の手動リクエスト分散
OLAP リクエストと OLTP リクエストが異なるアプリケーションによってデータベースへのアクセスに送信される場合は、アプリケーションごとに異なるクラスターエンドポイントを設定し、ローストアノードとカラムストアノードを異なるクラスターエンドポイントに関連付けてリクエスト分散を実装できます。
リクエスト分散ルール:
OLTP サービス:ほとんどの場合、読み取りリクエストと書き込みリクエストが含まれます。 すべての書き込みリクエストはプライマリノードによって処理されます。 読み取りリクエストは、読み取り専用ローストアノードまたはプライマリノードによって処理されます。
OLAP サービス:ほとんどの場合、読み取りリクエストのみが含まれます。 すべての読み取りリクエストは、読み取り専用カラムストアノードによって処理されます。
手動リクエスト分散ソリューション(読み書き または 読み取り専用)
OLTP アプリケーション用に、読み取り専用カラムストアノードに関連付けられていないクラスターエンドポイントを指定します。 これにより、OLTP 読み取りリクエストは、プライマリノードまたは読み取り専用ローストアノードによって処理されます。
OLAP アプリケーション用に、読み取り専用カラムストアノードのみに関連付けられているクラスターエンドポイントを指定します。 これにより、OLAP 読み取りリクエストは、読み取り専用カラムストアノードによって処理されます。

詳細については、「ローストアノードとカラムストアノード間の手動リクエスト分散」をご参照ください。