リソースの有限性から、ユーザーの性能に影響しないように、TencentDB for MySQLは各種タイプのMySQLインスタンスにデータ量制限を設けました。このドキュメントでは、大量のデータ数におけるMySQLの単一インスタンスおよび単一テーブルの使用による影響について技術的な角度からご紹介します。
大量データのインスタンス:CDBのデフォルトのストレージエンジンはInnoDBです。インスタンスにおけるデータとインデックスページがInnoDBのcache、bufferにキャッシュされている場合、MySQLインスタンスでは、大量の同時アクセスがサポートされています。インスタンスのデータ量が大きすぎる場合、cache bufferが頻繁にデータを交換し、MySQLのボトルネックが速やかにIOに移行し、アクセスのスループットが大幅に低下します(例えば、あるCDBのインスタンスは本来、1秒あたり8000回のアクセス回数が可能であるが、データ量がcache、bufferサイズの2倍になった場合、1秒あたりのアクセス回数が700回となった)。
大量データテーブル:1つのテーブルのデータ量が大きくなりすぎると、1つのテーブルに対するMySQLのリソース(データ、インデックスなど)の管理コストが変化し、テーブルの処理効率に直接影響を与えるようになります。例えば、ビジネステーブル(InnoDB)のデータ量が10GBに達した場合、更新操作の遅延が大幅に増加し、ビジネスのレスポンスタイムに直接影響を与えるため、分割テーブルを移行して緩和しなければならなくなります。
単一インスタンスのテーブル数が100万を超えた場合は、バックアップ、監視、アップグレードに失敗する恐れがあり、データベースへの監視にも影響を与えます。そのために、単一インスタンスのテーブル数が100万を超えないようにテーブルの数を適切に管理してください。
MySQLインスタンスへの最大接続数は、MySQLのシステム変数max_connectionsで指定されます。MySQLインスタンス接続数がmax_connectionsを超えると、新しい接続はできなくなります。
CDBへのデフォルトの接続数は、MySQLコンソールでインスタンスIDをクリックし、データベース管理>パラメータ設定ページで確認することができます。ユーザーは必要に応じて、max_connectionsの値を自分で調整することができます。ただし、接続数が多いほど、システムリソースを多く消費することになります。接続数が実際のシステムの負荷容量を超えると、システムのサービス品質への影響を避けられなくなります。
max_connectionsの詳細については、MySQL公式ドキュメントをご参照ください。
CVMシステムに付属したMySQLクライアント端末とlibライブラリを使用して、TencentDBインスタンスに接続することをお勧めします。
TencentDB for MySQLのbinlogログファイルは7日間から1830日間保持でき、デフォルトは7日間です(インスタンスIDをクリックしてバックアップリカバリ>自動バックアップ設定に移動すると、保持期間を設定できます)。
binlogは保存時間が長すぎるか、または増加が速すぎると、バックアップ領域が大きくなり、バックアップ領域がシステムが割り当てた領域を一旦超えてしまうと、追加のバックアップ領域費用が生じることがあります。
TencentDB for MySQLのデフォルトの文字セットはUTF8です。
クラウドデータベースはデフォルト文字セットエンコーディングの設定をサポートしますが、テーブル作成時にはテーブルのコードを明確に指定し、接続時には接続コードを指定することをお勧めします。そうすることで、アプリケーションの移植性がより良くなります。
MySQL文字セットの関連リソースについては、MySQL公式ドキュメントをご参照ください。
文字セットの変更は、SQL言語またはMySQLコンソールから行うことができます。
SET @@global.character_set_client = utf8;
SET @@global.character_set_results = utf8;
SET @@global.character_set_connection = utf8;
SET @@global.character_set_server = utf8;
ステートメントの実行後、このうちの@@global.character_set_server 等は、約10分で永続化のためにローカルファイルに自動的に同期されますが、他の3つの変数は同期されません。設定された値は、移行または再起動後も変更されません。
2. 以下のステートメントを実行することで現在接続している文字セットエンコーディングを変更できます。
SET @@session.character_set_client = utf8;
SET @@session.character_set_results = utf8;
SET @@session.character_set_connection = utf8;
または
SET names utf8;
bool mysqli::set_charset(string charset);
または
bool mysqli_set_charset(mysqli link, string charset);
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8
中国語によるテーブル名はサポートしていません。テーブル作成時には注意してください。中国語によるテーブル名の場合、ロールバック、アップグレードなどのフローが失敗することがあります。
TencentDB for MySQLは今後、インスタンスのsuper user権限をユーザーに提供しません。変更にsuper user権限が必要なパラメータは、MySQLコンソールからインスタンスIDをクリックして、データベース管理>パラメータ設定ページに移動して変更することができます。
VPCを使用することをお勧めします。VPCでは、ネットワークセグメントのパーティション、IPアドレスおよびルーティングポリシーをカスタマイズすることができます。基本ネットワークに比べると、VPCはカスタムネットワーク構成が必要なシナリオに適しています。VPCおよび基本ネットワークの比較についてはネットワークの管理をご参照ください。
この記事はお役に立ちましたか?