この記事は、mysql に関する関連知識を提供します。主に、読み書き分離の動作原理、読み書き分離の実装方法など、読み書き分離の基本原理に関連する問題を整理します。分離、読み書き分離でよく使われるミドルウェアなどを一緒に見ていきましょう。
## 推奨学習: 1. 読み取りと書き込みの分離の動作原理いくつかの大規模なWeb サイト ビジネス シナリオでは、単一のデータベース サーバーが提供する同時実行性の量ではビジネス ニーズを満たすことができなくなりました。この状況を満たすために、データは通常、マスターとスレーブの同期によって同期されます。これに基づいて、読み取りと書き込みの分離が使用されます。データを同期し、データベースの同時実行性とロード機能を向上させます。 一般に、ビジネス シナリオにおけるデータベースに対するクエリ操作は、追加、削除、変更よりもはるかに多く、読み取り操作の方がデータベースに与える影響は小さくなります。したがって、通常は 1 台のデータベース サーバーを主にデータの追加、削除、変更のタスクを担当するマスター サーバーとして設定し、3 ~ 4 台のデータベース サーバーを主にデータのクエリ タスクを担当するスレーブ サーバーとして構成します。データベース スレーブ サーバーは、データベース マスター サーバーからのデータを同期して、データの一貫性を実現します。
アプリケーション層を介した実装とは、Web ページ内にデータ クエリ言語とデータ操作言語を実装して、それぞれ異なる MySQL メイン ライブラリとスレーブ ライブラリを指すことを指します。アプリケーション層を通じて実装された MySQL の読み取りと書き込みの分離の図は次のとおりです。
これの利点は、展開の難しさが軽減され、展開とインストールがすぐに使用できることです。欠点は、アーキテクチャを拡張すると、コードを変更するために自動データベース シャーディングやテーブル シャーディングなどの高度な操作を実装するのが難しくなり、一部の大規模なアプリケーション シナリオにはあまり適さないことです。
ミドルウェア層を介した実装とは、すべての SQL ステートメントがアプリケーション層で均一にミドルウェア デバイスを指し、ミドルウェア デバイスが操作のためにさまざまな SQL ステートメントをさまざまなデータベース サーバーに指すことを意味します。ミドルウェア層を通じて読み取りと書き込みの分離を実現する図は次のとおりです。
これの利点は、アーキテクチャ設計がより柔軟で、ビジネス コードへの影響が少なく、移植性が優れていることです。高度な制御を実現できますが、この種のアーキテクチャでは、アーキテクチャを維持するために専門の運用保守担当者が必要です。
1, cobarアリババ B2B 開発 リレーショナル分散システムは初期のミドルウェアですが、開発者の退職によりその後メンテナンスされずに放置されました。
2. MyCAT テクノロジー愛好家たちは、cobar をベースに二次開発を実施し、cobar のいくつかの問題を解決し、いくつかの新機能を追加しており、現在、MyCAT コミュニティは非常に活発です。 MyCAT を使用している企業も数多くあります。
3. OneProxy Oneproxy は、Alipay チームによって開発された商用の有料ミドルウェアであり、同時実行性の高いシナリオで非常に安定しています。
4. Vitess ミドルウェア アーキテクチャは複雑で、Vitess を使用するには、Vitess が提供する API インターフェイスを使用する必要があります。
5. Kingshard 360 チームによって開発され、サブデータベースとテーブルをサポートしていますが、同時実行性が高い条件下では安定性は平均的です。
6、MaxScaleとMySQL Route どちらもMySQLの公式ミドルウェアです。 Maxscale は Mariadb によって開発され、MySQL Route は現在 Oracle によって MySQL データベース用にリリースされているミドルウェアです。
以上がMySQL の読み取りと書き込みの分離の基本原則の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。