読み取りと書き込みの分離によりデータベースのパフォーマンスが向上する理由
上記のブログを参照してください。データベースの常識によれば、読み取りと書き込みを分離すると確かにデータベースのパフォーマンスが向上しますが、その基礎となる原則を理解しているかどうかはわかりません。たとえば、1 台のマシンが読み取りを行い、もう 1 台のマシンが書き込みを行う場合でも、データは同期する必要があり、そうでないとシステムは意味がありません。では、本質的には同じではないのでしょうか?
PHP中文网2017-05-24 11:36:46
ただし、読み取り時に同期する必要はありません。一方は読み取りのパフォーマンスが高く、もう一方は書き込みのパフォーマンスが高くなります。 読み取りと書き込みの分離は、読み取りが書き込みよりもはるかに重要なシナリオに適しています。
MySQL は多くのデータベース ストレージ エンジンを使用しており、各エンジンには長所と短所があります。サポートしていないものもありますが、パフォーマンスと速度が高いものもあります。読み取りは速いですが書き込みが非常に遅いものもあります。また、その逆のものもあります。マスターとスレーブの読み取りと書き込みの分離により、各データベース エンジンの利点を最大限に活用できます。 。
あなたの質問: しかし、データはまだ同期する必要があります。実際、すべてのデータは単一のアイテムであるため、これは同期とはみなされません。アプリケーション層のデータはメイン ライブラリに直接書き込まれますが、スレーブ ライブラリのデータはバイナリ ライブラリから復元されます。さらに、最も重要な違いは、メイン ライブラリがバイナリ ライブラリとデータを非同期で送信することです。スレーブ ライブラリからの回復も非同期です。
スレーブ データベースがない場合でも、データベースの障害を防ぐために、メイン データベースはバイナリ ログ データをハードディスクまたは他のコンピューターに書き込む必要があります。データベースの問題が発生した場合、DBA はバイナリログから以前のデータを復元することしかできません。
あなたの説明: 「1 つは読み取り用、もう 1 つは書き込み用」あなたは初心者か、実際のプロジェクトに参加したことがないかもしれません。実際のオンライン プロジェクトは、N ステーションでの読み取りと書き込み、および M ステーションでのバックアップがすべてです。読み取りと書き込みを分離した後、N ステーションが読み取り、N ステーションが書き込み、M ステーションがバックアップ、または 1 ステーションが読み取り、1 ステーションが書き込み、M ステーションがバックアップできます。
phpcn_u15822017-05-24 11:36:46
読み取りと書き込みの分離の主な目的は、サーバーの負荷を分散することです。これは、データのリアルタイム要件がそれほど厳しくないビジネスに適しており、さまざまな読み取りと書き込みのニーズに対応するために、必要に応じてさまざまなシステム パラメーターを設定できます。ビジネスシステム全体の総合的なパフォーマンスを向上させます。