回答:
私自身は試したことはありませんが、他にも試してみました。 ここでは、1つのインスタンスで10,000のデータベースでも問題なく実行されていることがわかります。ServerFaultにもいくつかの実用的な側面があります。
データベースは非常に小さいため、ホストOSのファイル数の制限に遭遇することはありません。私が考えることができる唯一の問題は、これらのすべてのデータベースに同時にアクセスする場合、それらすべての接続の処理が難しいことです。
そして最後に、このサイトは大歓迎です。末永くご愛顧賜りますようお願い申し上げます。
管理の観点からすると、面倒なことのように聞こえます。その多くのデータベースをどのようにバックアップする予定ですか?それぞれをループするスクリプトを使用して?
本当に正当な理由がない限り、すべてのデータが顧客IDにリンクするように構造が設計されているデータベースが1つしかないのはなぜですか。このフィールドに基づいて、インデックス/外部キー/主キーを追加すると、データの整合性が確保されます。
次に、1つの顧客IDにのみアクセスするために、すべてのクエリにwhere句を含める必要があります。これは保守がはるかに簡単で、開発も同じくらい簡単です(どちらの場合でも、顧客の識別を許可する必要があるため)。
search_path
。
特に共有サーバーのホスティングでこれを行う人々がいます。
ここで問題を考えると、無料の昼食はありません。スキーマを使用して、アプリケーションに透過的な方法でそれを行うことができます。ただし、何千ものスキーマと何万ものテーブルに到達すると、さらに問題が発生します。
概して、あなたのコメントを考えると、複数dbアプローチは最も健全だと思います。
(バックアップのような)管理が面白くなります。また、ある時点でdbへの接続に時間がかかるようになると思います。pg_hba.confを使用してアクセスを制限している場合(これを行う必要があります)、それも頭痛の種となり、おそらくそのファイルを生成するためのソリューションを構築する必要があります.....
Jon JensenによるPostgreSQLクラスタ上の10,000個のデータベース(2008年)を読んだ方がよいと思います。
1つの抜粋:
短い答え:Postgres 8.1は10,000のデータベースを問題なく処理します。
\l
もちろん、psqlではデータベースの長いリストが生成されますが、十分高速に戻ります。アドホック同時実行テストは問題ありませんでした。さまざまなPlayデータベースの厳選されたグループでクエリや挿入などを実行すると、新しいデータベースの作成中など、問題なく動作しました。[...]
この[ Linux ext3 ]プラットフォームの実際の制限は、おそらく31995データベースです。これは、各データベースがdata / base /のサブディレクトリを占有し、ext3ファイルシステムには、1つのディレクトリあたり31998のサブディレクトリという制限があるためです。 iノード。