tencent cloud

TencentDB for MySQL

動向とお知らせ
製品アップデート情報一覧
初心者ガイド
製品紹介
製品概要
製品の優位性
適用シナリオ
データベースのアーキテクチャ
タグ編集
製品機能リスト
データベースインスタンス
高可用性(マルチアベイラビリティゾーン)
地域とAvailability Zone
自社研究カーネル
TXSQLカーネル概要
機能系特性
パフォーマンス系特性
セキュリティ系特性
安定性系特性
TXRocksエンジン
購入ガイド
課金概要
購入方法
支払い更新の説明
支払い延滞の説明
返金説明
インスタンス調整の料金の説明
バックアップキャパシティ課金説明
クイックスタート
概要
MySQLインスタンスの作成
操作ガイド
使用制限
操作一覧
インスタンスの管理とメンテナンス
アップグレードインスタンス
拡張インスタンス
データベースプロキシ
データベース管理(DMC)
アカウント管理
パラメータ設定
バックアップとロールバック
データ移行
インターネットとセキュリティ
監視とアラーム
ログセンター
タグ
プラクティスチュートリアル
MySQL利用規約
アプリケーションの自動再接続機能のコンフィグレーション
MySQLマスターインスタンスパラメータの変更影響
MyISAMからInnoDBエンジンへの切り替え制限
TencentDB for MySQLのためのVPC作成
MySQLによるサービス負荷能力の向上
2地域3センターのディザスタリカバリ構築
リード・ライト分離によるTencentDB for MySQLパフォーマンスの拡張
DTSでInnoDBデータをRocksDBに移行します
LAMPスタック上のWebアプリケーションの構築
Drupalウエブサイトの構築
Python言語によるMySQL APIの使用
ホワイトペーパー
パフォーマンス白書
セキュリティ白書
トラブルシューティング
接続に関する問題
性能関連
インスタンスデータの同期遅延
大文字と小文字を区別しない設定に失敗しました
APIドキュメント
History
Introduction
API Category
Instance APIs
Making API Requests
Data Import APIs
Database Proxy APIs
Database Audit APIs
Security APIs
Task APIs
Backup APIs
Account APIs
Rollback APIs
Parameter APIs
Database APIs
Monitoring APIs
Log-related API
Data Types
Error Codes
よくある質問
課金関連
ロールバック関連の問題
接続とログインに関する問題
パラメータを変更
アップグレード関連の問題
アカウント権限
性能メモリ
運営する
データ移行
機能特徴
コンソール関連
ログ関連
API 2.0切り替え 3.0ガイド
Service Agreement
Service Level Agreement
Terms of Service
汎用参考
標準と認証
お問い合わせ
用語集

自動読み取り/書き込み分離の概要

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-07-25 17:42:32
ここでは主に、TencentDB for MySQLデータベースプロキシサービスの自動読み取り/書き込み分離、機能上のメリット、読み取り/書き込み分離ルートのルールについてご紹介します。

自動読み取り/書き込み分離

現在、多くのライブネットワークユーザーのビジネスシナリオには、読み取りの増加と書き込みの減少、予測できない業務の負荷といったシナリオがあります。ただし、読み取りリクエスト数が多いアプリケーションシナリオでは、単一のインスタンスが読み取りのプレッシャーに耐えられない場合があり、業務に影響を与える可能性もあります。読み取り機能のフレキシブルな拡張を実現し、データベースのプレッシャーを分担するために、1つまたは複数の読み取り専用インスタンスを作成し、読み取り専用インスタンスを利用して多数のデータベース読み取り要件を満たすことができます。ただし、このタイプのソリューションでは、業務側が読み取り/書き込み分離の変換をサポートする必要があります。そのコードのロバストネスによって、ビジネスの読み取り/書き込み分離の品質が決まるため、顧客に対する技術的要件が高く、柔軟性とスケーラビリティが低くなります。
読み取り専用インスタンスの作成後、データベースプロキシを購入することでアクセスアドレスポリシーを構成することができます。データベースプロキシアドレスをアプリケーションで設定することによって、書き込みリクエストをマスターインスタンスに、読み取りリクエストを各読み取り専用インスタンスに自動的に転送できます。さらに、次のように、他の業務上の問題点に自然なソリューションを提供することもできます:
予測不可能または不規則な変動による負荷/負荷の「急増」現象が明確なケース インターネットビジネスシーンにおける作業負荷とアクセス負荷は、多くの場合に予測ができず、不安定で、頻繁に変動と「急増」が発生しやすくなります。ビジネス側でデータベースへの短時間のアクセスを大量に実施した場合、これらのケースでは大量の新規接続が発生しやすくなります。すなわち、データベースとアプリケーション間の接続数が、ビジネスアクセスの負荷の頻繁な変更によって、変動しやすくなります。また、このケースは多くの場合に事前に予測することが困難です。 データベース専用プロキシの接続管理により、お客様がデータベース接続を効果的に再利用できるようにして、予測できないワークロードを処理するアプリケーションを適切に拡張することができます。まず、データベース接続を複数のアプリケーション接続で共有することによって、データベースリソースを効果的に利用することができます。次に、開かれているデータベース接続の数を調整することにより、お客様が予測可能なデータベースパフォーマンスを維持できるようにします。第三に、利用できないアプリケーションリクエストを削除して、アプリケーションの全体的なパフォーマンスと可用性を維持します。
アプリケーションとデータベースが頻繁に接続の確立と切断を繰り返すケース サーバーレス、PHPまたはRuby on Railsなどの技術をベースとして構築されたアプリケーションは、データベース接続を頻繁にオン・オフすることで、アプリケーションのリクエストに応じることがあります。 データベース専用プロキシは、お客様がデータベース接続プールを維持して、データベースの計算と新しい接続の確立のために使用されるメモリに不必要なプレッシャーを与えないようにするのに役立ちます。
データベースのアクセスと接続が長時間アイドル状態で、リリースされないケース SaaSまたはeコマース業界における従来のアプリケーションは、お客様が再接続するときの応答時間を最小限に抑えるために、データベース接続をアイドル状態に保つ場合があります。お客様は専用のデータベースプロキシを使用して、アイドル状態の接続を維持します。多くのアイドル接続をサポートするためのしきい値の過剰な調整や、より高度な構成のデータベース提供などをすることなく、必要な場合にのみデータベース接続を確立することができます。
データベースのPaaSサービスがフェイルオーバーしたケースにおけるスムーズさと安定性を向上 ユーザーはデータベース専用プロキシを使用すると、複雑なフェイルオーバーコードを記述せずに、データベースのフェイルオーバー(アクティブ/パッシブ)を透過的に許容できるアプリケーションを構築することができます。データベース専用プロキシは、読み取りトラフィックを新しいデータベースインスタンスに自動的にルートしながら、アプリケーション接続を維持します。


機能のメリット

セルフサービスの読み取り/書き込み分離、アクセスアドレスの統合。
ネイティブリンクのサポートにより、パフォーマンスが向上し、メンテナンスコストが削減されます。
ユーザーが柔軟に選択できるように、重みとしきい値を設定できます。
フェイルオーバー機能を備えており、データベースプロキシがリクエストに失敗した場合でも、メインデータベースに正常にアクセスできます。
マスターインスタンスの切り替え、構成の変更、読み取り専用インスタンスの増減といった状況が発生すると、データベースプロキシは、ネットワークを中断したり再起動したりすることなく、設定を動的にホットリロードできます。

読み取り/書き込み分離ルートルール

マスターインスタンスに送信

CREATE、ALTER、DROP、RENAMEなど、DDLステートメント。
INSERT、UPDATE、DELETEなど、DMLステートメント。
SELECT FOR UPDATEステートメント。
一時テーブルに関連するステートメント。
一部のシステム関数の呼び出し(last_insert_id()など)およびすべてのカスタム関数の呼び出し。
LOCKに関連するステートメント。
トランザクションを有効にした後のステートメント(set autocommit=0を含む)。
ストアドプロシージャ。
「;」で接続された複数のステートメント。
KILL(SQLステートメントのKILL、コマンドKILLではありません)。
すべてのユーザー変数のクエリーと変更。

読み取り専用インスタンスに送信

トランザクション外の読み取り(SELECT)ステートメント。

すべてのインスタンスに送信

show processlistステートメント。
すべてのシステム変数の変更(SETコマンド)。
USEコマンド。

ヘルプとサポート

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

フィードバック