tencent cloud

TDSQL-C for MySQL

動向とお知らせ
製品アップデート
製品お知らせ
初心者ガイド
製品概要
プロダクト概要
製品の強み
適用シーン
製品アーキテクチャ
製品仕様
インスタンスタイプ
製品機能一覧
データベースのバージョン
リージョンとアベイラビリティゾーン
基本概念
利用制限
利用ガイドの推奨事項
自社開発カーネル
カーネル概要
カーネルバージョンのアップデート情報
カーネル最適化バージョン
機能特性
パフォーマンス関連機能
セキュリティカテゴリの機能
安定性機能
分析エンジン特性
カーネル問題のチェックと修復
購入ガイド
課金概要
製品価格
クラスタを作成する
構成変更説明
未払いについての説明
継続支払いの説明
返金ポリシー
従量課金から年/月単位サブスクリプションへの変換
従量課金からServerlessへの変換
付加価値サービスの課金説明
料金請求書の確認
クイックスタート
データベース監査
概要
監査インスタンス一覧
監査サービスを有効化する
監査ログの確認
ログ配信
事後アラーム設定
監査ルールの変更
監査サービスを変更する
監査サービスを停止する
監査ルールテンプレート
監査タスクの照会
サブユーザーへのデータベース監査利用権限付与
Serverlessサービス
Serverless入門
サーバーレス版クラスタの作成と管理
伸縮性スケーリング管理ツール
Serverlessリソースパック
マルチAZデプロイ
設定を変更する
よくあるご質問
Serverlessコスト見積ツール
操作ガイド
操作概要
コンソールでのクラスタページビューの切り替え
データベース接続
インスタンス管理
設定を変更する
インスタンス形態管理
クラスタ管理
読み取り専用インスタンス管理 
データベースプロキシ
アカウント管理
DMC
DMC(データベース管理ツール)
パラメータ設定
マルチAZデプロイ
グローバルデータベース
バックアップとリストア
操作ログ
データマイグレーション
パラレルクエリ
列ストレージインデックス CSI
分析エンジン
データベースセキュリティと暗号化
モニタリングとアラーム
SQLの基本操作
以下のコマンドを実行して、TDSQL-C for MySQLに接続してログインします
Tag
実践チュートリアル
TDSQL-C for MySQL データベース監査の等級保護実践
非InnoDBテーブル問題のワンクリック移行検出処理方法
DTSによるデータベースバージョンのアップグレード MySQL 5.7から8.0へ
TDSQL-C for MySQL 使用規範
新版コンソール
データベースプロキシの複数接続アドレスによる複数ROグループの実現
データベースプロキシのメリット
ストレージの課金モードの選び方
DTSによるリモートディザスタリカバリの構築
クラスタ用VPCの作成
データ復旧の方法
CPU使用率の高騰問題の解決方法
サブユーザーへの監視データ閲覧権限付与方法
ホワイトペーパー
セキュリティホワイトペーパー
性能ホワイトペーパー
トラブルシューティング
接続関連
性能関連
よくあるご質問
基本概念
購入と課金
サポートされるフォーマット
接続とネットワーク
機能特性
コンソールの操作
データベーステーブル
パフォーマンスとログ
データベース監査
TDSQL-C for MySQLとTencentDB for MySQLの違い
関連契約
SLA
利用規約
TDSQL-C ポリシー
プライバシーポリシー
データ処理と安全プロトコル
汎用参考
標準と認証
用語一覧
お問い合わせ

整合性レベル

PDF
フォーカスモード
フォントサイズ
最終更新日: 2026-01-29 18:04:29
TDSQL-C for MySQLの自動読み書き分離機能は、TDSQL-C for MySQLとアプリケーション間の接続を確立し、送信された各SQLを解析します。もしCREATE、ALTER、DROP、RENAMEなどのステートメントであれば、直接読み書きインスタンスに送信します。もしトランザクション外の読み取り(SELECT)ステートメントであれば、読み取り専用インスタンスに送信します。これにより、読み書き分離を実現します。しかし、データベースの負荷が高い場合、例えば大量データの挿入時には、遅延が非常に深刻になり、その結果、読み取り専用ノードから最新データを読み取ることができません。
TDSQL-C for MySQLの読み書きインスタンスでデータが更新されると、関連する更新内容は読み取り専用インスタンスに適用されます。データ同期の遅延時間はライト負荷に依存します。TDSQL-C for MySQLは、異なる整合性レベルを提供することで、ビジネスアクセスにおけるデータベースのデータ整合性要件を保証します。
TDSQL-C for MySQLは以下の三つの整合性レベルを提供し、さまざまなシナリオにおける整合性要件を満たします:
結果整合性
セッション整合性
グローバル整合性

結果整合性

機能概要 TDSQL-C for MySQLのデータベースプロキシは自動読み書き分離機能を実装しており、自動読み書き分離シナリオではデフォルトでデータの結果整合性を提供します。これにより、読み取り専用インスタンスが変更済みの書き込みデータを読み取る際、最終的に更新されたデータを取得できることを保証します。ただし、即時取得を完全に保証するものではありません。更新されたデータのプライマリ/セカンダリレプリケーション遅延により、異なるノードからクエリした結果が異なる場合があります。
適用シナリオ 読み書きインスタンスの負荷を軽減する必要があり、できるだけ多くの読み取りリクエストを読み取り専用インスタンスにルーティングしたい場合で、整合性の要件がそれほど高くないシナリオでは、結果整合性を選択できます。

セッション整合性

機能概要 整合性の要求が高いシナリオでは、結果整合性ではクエリ結果に差異が生じるため、通常はビジネスロジックの分割が必要となります。整合性要求の高いリクエストは直接読み書きインスタンスに送信し、結果整合性が許容できるリクエストは読み書き分離を通じて読み取り専用インスタンスに送信します。この方法では、読み書きインスタンスの負荷が増加して読み書き分離の効果が低下する一方、アプリケーション開発の負担も増加します。
上記の問題を解決するため、TDSQL-C for MySQLはセッション整合性を提供します。セッション整合性により、同一セッション内において、読み取りリクエスト実行前に更新済みのデータを確実にクエリできることを保証し、データの単調性を確保します。
TDSQL-C for MySQLのリンク中間層で読み書き分離を行う際、中間層は各ノードが適用済みのログ位置、すなわちログシーケンス番号(Log Sequence Number、略称LSN)を追跡します。同時に、データが更新されるたびにTDSQL-C for MySQLは当該更新の位置をSession LSNとして記録します。新規リクエストが到着すると、TDSQL-C for MySQLはSession LSNと現在の各インスタンスのLSNを比較し、LSNがSession LSN以上のインスタンスにのみリクエストを送信することで、セッション整合性を保証します。

上記のシナリオでは、更新が完了した後、クライアントに結果を返す際にレプリケーションも同時に進行しており、次の読み取りリクエストが到着する時点では、読み書きインスタンスと読み取り専用インスタンス間のデータレプリケーションがすでに完了している可能性があります。また、ほとんどのアプリケーションシナリオでは読み取りが多く書き込みが少ないため、このメカニズムによりセッション整合性が保証されます。
適用シナリオ 整合性の要求が高いシナリオに適用されます。TDSQL-C for MySQLの整合性レベルが高いほど、マスターインスタンスへの負荷が増大し、クラスタのパフォーマンスも低下します。セッション整合性の使用を推奨します。このレベルはパフォーマンスへの影響が非常に小さく、ほとんどのアプリケーションシナリオの要件を満たすことができます。
注意:
セッション整合性を有効にした後、読み書きインスタンスと読み取り専用インスタンス間のレプリケーション遅延が大きい場合、各読み取りノードのLSNがすべてSession LSNより小さくなると、SELECTリクエストが読み書きインスタンスに送信され、読み書きインスタンスの負荷が増加し、クラスタ全体の読み書きパフォーマンスが低下する可能性があります。

グローバル整合性

機能概要 一部のシナリオでは整合性の要求が極めて高く、セッション内部に論理的な因果依存関係が存在するだけでなく、セッション間にも依存関係が存在します。例えば、コネクションプールを使用するシナリオでは、同一スレッドのリクエストが異なる接続を介して送信される可能性があります。データベースにとってこれらのリクエストは異なるセッションに属しますが、ビジネスロジック上これらのリクエストには前後依存関係があるため、この場合セッション整合性ではクエリ結果の一貫性を保証できません。この問題を解決するため、TDSQL-C for MySQLはグローバル整合性を提供します。
適用シナリオ 整合性の要求が極めて高いシナリオに適用されます。マスター/スレーブ間の遅延が大きい場合、グローバル整合性を使用すると、より多くのリクエストが読み書きインスタンスにルーティングされる可能性があり、読み書きインスタンスの負荷増大を招き、ビジネス遅延も増加する可能性があります。したがって、読み取りが多く書き込みが少ないシナリオではグローバル整合性を選択することをお勧めします。

整合性レベルの設定

説明:
説明: 整合性レベルの設定には、まずデータベースプロキシの読み書き属性を「読み書き分離」に設定する必要があります。データベースプロキシの読み書き属性設定の手順でセッション整合性レベルを設定できます。整合性レベルを変更する場合は、以下の手順を参照してください。
一貫性レベルの変更は新規接続に対してのみ有効です。パラメータを即時適用するために接続を直ちにリセットする必要がある場合、再負荷分散機能の実行またはインスタンスの再起動が可能です。
1. TDSQL-C for MySQLコンソールにログインし、クラスタリストでプロキシが有効化されたクラスタを選択し、クラスタIDをクリックしてクラスタ管理ページに入ります。
2. クラスタ管理 > クラスタ詳細のトポロジ図で、マウスをデータベースプロキシセクションに移動させ、詳細をクリックするとデータベースプロキシ管理ページに遷移します。または、クラスタ管理ページで直接データベースプロキシタブを選択してデータベースプロキシ管理ページに入ります。
3. 接続アドレスの下で対象のアクセスアドレスを見つけ、操作列の設定調整をクリックします。

4. 設定ウィンドウで、必要な整合性レベルを選択し、確定をクリックします。

説明:
注記:
ご注意:現在、同一クラウドアカウント配下の複数のデータベースプロキシインスタンスに対して個別のタイムアウト時間を設定することはできません。複数のデータベースプロキシインスタンスのタイムアウト時間は統一設定が適用され、単一のデータベースプロキシインスタンスでタイムアウト時間を変更すると、すべてのデータベースプロキシインスタンスのタイムアウト時間が一括変更されます。

関連するAPI

API
説明
本インターフェース(ModifyProxyRwSplit)はデータベースプロキシの読み書き分離を設定するために使用されます。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック