ホームページ >データベース >mysql チュートリアル >mysqlデータベースのパフォーマンスに影響を与える要因の説明(データベースアーキテクチャの場合)

mysqlデータベースのパフォーマンスに影響を与える要因の説明(データベースアーキテクチャの場合)

不言
不言オリジナル
2018-09-17 17:50:281364ブラウズ

この記事では、MySQL データベースのパフォーマンスに影響を与える要因について説明します (データベース アーキテクチャのケースも含めて)。必要な方は参考にしていただければ幸いです。

データベースのパフォーマンスに関する話

面接では、データベースに関する話題が多かれ少なかれ出てきます。「データベースをどの程度使いこなしていますか?」「データベースのパフォーマンスが最もテストされるのはいつですか?」 、約束が重要である一方で、大量のデータを読み書きする時期であり、電子商取引プロモーションはそれぞれのデータベースのパフォーマンスをテストする時期でもあります。

Web サーバーの場合、データ量が大きい場合は水平拡張することで 1 台のサーバーの負荷を軽減できますが、データベース サーバーの場合はそう簡単には水平拡張できません。拡張はデータベースの整合性と一貫性の原則にも違反します。では、データベース アーキテクチャはどのように構築されるべきでしょうか。

大規模なプロモーション活動では、どんなに優れた製品や企画が成功しても、安定したデータベースやサーバー環境がなければ、いわゆるすべてが無駄になってしまいます。

データベース アーキテクチャのケース

mysqlデータベースのパフォーマンスに影響を与える要因の説明(データベースアーキテクチャの場合)

図に示すように、マスター サーバーとスレーブ サーバーの間にマスター/スレーブ レプリケーション コンポーネントはありません。つまり、マスター サーバーに障害が発生した場合にマスター サーバーを切り替えることが困難になるため、DBA は最新のデータを持つスレーブ サーバーを選択し、それをマスター サーバーに昇格させ、他のスレーブ サーバーを同期する必要があります。このプロセスにかかる時間コストも非常に大きくなります。

また、ビジネス量が大きい場合、スレーブ サーバーが多すぎると、マスター サーバーのネットワーク カードに一定の課題が生じます。

クラスター監視情報を通じて、何がデータベースのパフォーマンスに影響を与えるかを理解できます。

はい、はい。一般的に、主な理由は、QPS と TPS、同時実行性 (同時接続数との混同を避けるため、同時に処理されるリクエストの数)、ディスク IO、および読み取りです。オペレーションが高すぎる

これは提案です: 少なくとも、大規模なイベントが発生する前にはそのような計画をキャンセルしないことをお勧めします#。

##SQL クエリ速度

サーバー ハードウェア

ネットワーク カード トラフィック

ディスク IO


超高 QPS および TPS
  • リスク: SQL の効率が低い (QPS: 1 秒あたりに処理されるクエリ数)

大量の同時実行と非常に高い CPU 使用率
  • リスク: 大量の同時実行 (データベース接続の数がいっぱいです (max_connections のデフォルトは 100))
  • リスク: 超高 CPU 使用率 (CPU リソースの枯渇によるダウンタイム)


ディスク IO
  • リスク: ディスク IO パフォーマンスの突然の低下 (より高速なディスク デバイスを使用する)
  • リスク: 大量のディスク パフォーマンスを消費するその他のスケジュールされたタスク(スケジュールされたタスクを調整します)


ネットワーク カード トラフィック
  • リスク: ネットワーク カード IO がいっぱいです (1000Mb/8=100MB)
データベースに接続できないことを回避する方法:

1. スレーブ サーバーの数を減らします。

2. クエリに "select *" を使用しないでください。ビジネス ネットワークとサーバー ネットワークを分離します。

以上がmysqlデータベースのパフォーマンスに影響を与える要因の説明(データベースアーキテクチャの場合)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。