|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| レプリケーションテーブルに対するSQL処理 | ||||||||||||
|
もう少し具体的に、典型的なSQLを実行したときのJDBCドライバの動きをみていきましょう。 SQLの書き換えや振り分けの処理は、対象となるテーブルの構成がレプリケーションなのか、それともパーティションなのかによって大きく異なります。まずはレプリケーションテーブルでの処理についてみていきましょう。 |
||||||||||||
| レプリケーションテーブルを更新する場合は? | ||||||||||||
|
「第1回:可用性と拡張性を備えたデータベースPostgresForest」でも簡単に触れたとおり、レプリケーションテーブルはすべてのPostgreSQLサーバ上でテーブルの内容を同一に保つ構成になっているテーブルです。 このテーブルを更新する場合、すべてのPostgreSQLサーバ上のテーブル内容を同時に、かつ同じ内容で更新する必要があります。 ![]() 図3:レプリケーションテーブルを更新する場合の処理 レプリケーションテーブルへの更新SQLを受け取ると、すべてのPostgreSQLサーバに一斉にそのSQLを引き渡します。この時SQLの内容は変更しません。ユーザアプリケーションから受け取ったそのままのSQLを渡します。 これによって、すべてのPostgreSQLサーバにおいて同時に同じ更新が実施され、テーブルの内容が同一に保たれることになります。 |
||||||||||||
| レプリケーションテーブルを参照する場合は? | ||||||||||||
|
すべてのPostgreSQLサーバにおいてテーブルの内容が等しく保たれているため、参照SQLに対する処理は非常に簡単です。 ![]() 図4:レプリケーションテーブルを参照する場合の処理 どのPostgreSQLサーバで検索を実行しても結果は同じなので、1つだけPostgreSQLサーバを選択してSQLを渡します。これによって1つのPostgreSQLサーバのみで動いている環境に比べ、1台のサーバあたりの負荷を下げることが可能になります。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||



