PostgreSQL 9の単一インスタンスのデータベースの最大数


9

マルチカスタマーアプリケーションの開発では、カスタマーごとに異なるデータベースを使用する予定です。しかし、1000以上の顧客(アプリケーション)になる可能性があります。

PostgreSQLは問題なく処理しますか?

誰かが似たようなことを試しましたか?

注:データベースごとに、それぞれ35個のテーブルがあり、平均として最大3000レコードです。

回答:


5

私自身は試したことはありませんが、他にも試してみました。 ここでは、1つのインスタンスで10,000のデータベースでも問題なく実行されていることがわかります。ServerFaultにもいくつかの実用的な側面があります。

データベースは非常に小さいため、ホストOSのファイル数の制限に遭遇することはありません。私が考えることができる唯一の問題は、これらのすべてのデータベースに同時にアクセスする場合、それらすべての接続の処理が難しいことです。

そして最後に、このサイトは大歓迎です。末永くご愛顧賜りますようお願い申し上げます。


コメントしてくれてありがとう。はい、同時接続は頭痛の種になる可能性がありますが、他のオプションは、各アプリケーションの共有テーブルであり、信じられないほど複雑です(アプリの再プログラミングが必要です)。
Juanin 2012

2

管理の観点からすると、面倒なことのように聞こえます。その多くのデータベースをどのようにバックアップする予定ですか?それぞれをループするスクリプトを使用して?

本当に正当な理由がない限り、すべてのデータが顧客IDにリンクするように構造が設計されているデータベースが1つしかないのはなぜですか。このフィールドに基づいて、インデックス/外部キー/主キーを追加すると、データの整合性が確保されます。

次に、1つの顧客IDにのみアクセスするために、すべてのクエリにwhere句を含める必要があります。これは保守がはるかに簡単で、開発も同じくらい簡単です(どちらの場合でも、顧客の識別を許可する必要があるため)。


1
これは非常に有効で有効なポイントです。たぶん、OPはスキーマの使用を検討する必要があり、パブリックスキーマには少数のテーブルしかなく、プライベートな顧客のスキーマのテーブルとの結合に使用できます。
フランソワボーソレイユ

おかげで、このオプションは最初から破棄されました。これはすでに開発されたアプリケーションの移植であり、すべてのコードをこの段階でそれほど簡単ではないものに変更します。しかし、はい、100以上のデータベースの毎日の管理は...興味深い...ですよね?
Juanin 2012

1
別のデータベースから別のスキーマに移行しても、コードに大幅な変更が加えられるべきではありません。特に、オブジェクトのスキーマをプレフィックスとして付ける必要はありませんsearch_path
DanielVérité2012

ここでは、バックアップ用のWal Archivingが理にかなっています。
Jharwood 2012

0

特に共有サーバーのホスティングでこれを行う人々がいます。

ここで問題を考えると、無料の昼食はありません。スキーマを使用して、アプリケーションに透過的な方法でそれを行うことができます。ただし、何千ものスキーマと何万ものテーブルに到達すると、さらに問題が発生します。

概して、あなたのコメントを考えると、複数dbアプローチは最も健全だと思います。

(バックアップのような)管理が面白くなります。また、ある時点でdbへの接続に時間がかかるようになると思います。pg_hba.confを使用してアクセスを制限している場合(これを行う必要があります)、それも頭痛の種となり、おそらくそのファイルを生成するためのソリューションを構築する必要があります.....


pg_hba.confの問題がわかりません。私たちのアプリはRuby on Railsを使用し、さまざまなデータベースへの接続を切り替えますが、常に同じLinuxボックス内にあります。ファイルへのアクセスの同時実行性の問題について話している?
Juanin 2012

1
いいえ、どのホストがどのdbにアクセスできるかを管理したい場合、それは長いファイルになり、管理が少し面倒になるかもしれません。
Chris Travers 2012

0

Jon JensenによるPostgreSQLクラスタ上の10,000個のデータベース(2008年)を読んだ方がよいと思います

1つの抜粋:

短い答え:Postgres 8.1は10,000のデータベースを問題なく処理します。\l もちろん、psqlではデータベースの長いリストが生成されますが、十分高速に戻ります。アドホック同時実行テストは問題ありませんでした。さまざまなPlayデータベースの厳選されたグループでクエリや挿入などを実行すると、新しいデータベースの作成中など、問題なく動作しました。

[...]

この[ Linux ext3 ]プラットフォームの実際の制限は、おそらく31995データベースです。これは、各データベースがdata / base /のサブディレクトリを占有し、ext3ファイルシステムには、1つのディレクトリあたり31998のサブディレクトリという制限があるためです。 iノード。


1
リンクは古くなる傾向があるため、リンクのみを含む回答はあまり役に立ちません。リンクしているものの概要を回答に追加することを検討してください。
mustaccio 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.